【问题标题】:ClojureScript split one namespace into multiple filesClojureScript 将一个命名空间拆分为多个文件
【发布时间】:2015-10-04 04:10:57
【问题描述】:

我读过this thread,但似乎ClojureScript 中没有loadload-file。是否可以将单个命名空间分隔在多个文件中?

我想这样做的原因是因为我正在使用 Om 并且我想将组件分成不同的文件。我可以使用单独的命名空间来做到这一点,但是我必须在每个文件的开头编写相同的要求,而且在主文件中调用这些组件的唯一方法是:

(:require [some-project.sidebar :as sidebar])

...

(om/build sidebar/sidebar app-state)

即我必须在每个组件的名称之前指定命名空间,这看起来不太漂亮。关于如何改进它的任何想法?我是 Clojure 和 ClojureScript 的新手,所以也许我遗漏了一些明显的东西?

【问题讨论】:

    标签: clojure namespaces clojurescript


    【解决方案1】:

    这里有几点需要注意

    1. 您可以在 :require 中使用 :refer 将不合格的变量导入命名空间。如果有几个,这没关系,但如果您尝试为所有事情都这样做,很快就会变得笨拙。
    2. Clojure 应用程序通常采用树状结构,其中主命名空间需要子命名空间,依此类推,因此您不必将相同的命名空间导入每个命名空间。
    3. 即使可以将命名空间拆分为多个文件,它也不是惯用的 Clojure。一个文件 = 一个命名空间是常态。
    4. 如果您愿意,您可以将一个命名空间中的变量定义到另一个命名空间中,以使一个“主”命名空间在您的其他命名空间中使用。
    5. 如果您想尽量减少必须执行的导入次数,请减少命名空间并使其更大。

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 2011-07-06
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多