gpt4 book ai didi

ClojureScript 将一个命名空间拆分为多个文件

转载 作者:行者123 更新时间:2023-12-02 15:26:46 25 4
gpt4 key购买 nike

我已阅读 this thread ,但 ClojureScript 中似乎没有 loadload-file 。是否可以在多个文件中分离单个 namespace ?

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

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

...

(om/build sidebar/sidebar app-state)

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

最佳答案

这里有几点需要注意

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

关于ClojureScript 将一个命名空间拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com