我經常發現自己定義了clojurescript中的名稱空間,它只包含通過def或defn創建的一個var,我將在該名稱空間之外使用它。clojure/clojurescript中的單個var命名空間的命名約定是什麼?
這在使用reagent時尤爲常見,我在其中定義我的組件在單獨的文件/名稱空間中,而且我只在名稱空間外使用這些單個組件。
(ns project.components.component-name)
(defn component-name ...)
於是我進口他們這樣,我覺得它非常重複性和不明確的,因爲是同時用於命名空間和組件一個名字:
project.components.component-name :as [component-name]
component-name/component-name
或劣:參考(因爲它是那麼明顯該變種來自另一個命名空間的)
project.components.component-name :refer [component-name]
component-name
我知道,有在ECMAScript中這一個有用的模式:
export default function() { ... };
那麼在Clojure中有這樣的事情嗎?或者也許有一些確定的公約呢?
以下是我最近開始使用的約定,我對此非常不確定。
(ns project.components.component-name)
(defn _ ...)
project.components.component-name :as [component-name]
然後用它作爲
component-name/_