我读了这个线程 https://stackoverflow.com/questions/4690758/splitting-a-clojure-namespace-over-multiple-files,但好像没有load
and load-file
在 ClojureScript 中。是否可以在多个文件中分离单个名称空间?
我想这样做的原因是因为我正在使用 Om 并且我想将组件分离到不同的文件中。我可以使用单独的命名空间来完成此操作,但随后我必须在每个文件的开头编写相同的需求,并且在主文件中调用这些组件的唯一方法如下:
(:require [some-project.sidebar :as sidebar])
...
(om/build sidebar/sidebar app-state)
即我必须在每个组件名称之前指定名称空间,这看起来不太漂亮。关于如何改进它有什么想法吗?我是 Clojure 和 ClojureScript 的新手,所以也许我遗漏了一些明显的东西?
这里有几点需要注意
- 您可以在 :require 中使用 :refer 将不合格的变量导入命名空间。如果有几个,这还可以,但如果你尝试对所有事情都这样做,很快就会变得笨拙。
- Clojure 应用程序通常采用树状结构,其中主命名空间需要子命名空间,依此类推,因此您不必将相同的命名空间导入到每个命名空间中。
- 即使可以将命名空间拆分为多个文件,这也不是 Clojure 惯用的做法。一个文件=一个命名空间是常态。
- 如果需要,您可以将一个命名空间中的变量定义到另一个命名空间中,以创建一个“主”命名空间以在其他命名空间中使用。
- 如果您想最大程度地减少必须执行的导入数量,请减少命名空间并使其更大。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)