我经常发现自己定义了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/_