我想使用 ClojureScript 制作“单页”风格的网络应用程序。为此,我需要一个客户端模板系统。有人对我应该研究哪些 ClojureScript 模板系统有任何经验和/或建议吗?谢谢。
问问题
1061 次
6 回答
5
你可以看看dommy,一个由 Prismatic 编写/使用的模板系统。
于 2013-01-24T13:32:47.157 回答
3
我发现crate很有帮助。
于 2013-01-04T16:58:39.543 回答
2
在使用过 Crate 和 Dommy 之后,我可以说它们都非常好。Crate 只是从 Clojure 转换为 Clojurescript 用于模板的 Hiccup 的实现,因此您仍然需要使用 Domina 来选择元素。如果您想要一个同时处理 DOM 选择和模板的框架,请使用 Dommy
于 2013-06-16T16:59:34.957 回答
2
我知道 Clojurescript 的三种模板风格:
- Dommy:直接从 cljs 代码创建和操作 DOM 节点。
- Crate:声明和操作 cljs 数据(向量、地图等),然后将其转换为 DOM 节点。
- Enfocus:在 HTML 文件中编写 HTML,处理它们并从 cljs 转换它们。它是一种不同的模板思维方式,它基于 clj 库 Enlive。
有一些库可以生成 React DOM 节点而不是普通的 DOM 节点,但它们的工作方式与上面提到的相同:
- 任何 Cljs React 包装器,例如 Om 或 Reagent
- 萨布洛诺
- 基欧
我知道你只是要求模板,而 React 提供的不止这些,但如果你需要除了最基本的操作之外的任何东西,我会推荐任何基于 React 的方法。
于 2014-12-12T20:51:43.493 回答
1
因为到目前为止还没有提到:我真的很喜欢Hoplon。它结合了以下工具集:
您可以将其用作全栈解决方案,也可以仅在客户端使用它。给你一个印象(取自GitHub):
(page "index.html")
(defn my-list [& items]
(div
:class "my-list"
(apply ul (map #(li (div :class "my-list-item" %)) items))))
(def clicks (cell 0))
(html
(head
(title "example page"))
(body
(h1 "Hello, Hoplon")
(my-list
(span "first thing")
(span "second thing"))
(p (text "You've clicked ~{clicks} times, so far."))
(button :click #(swap! clicks inc) "click me")))
于 2016-08-19T08:41:41.360 回答