我是 Clojurescript 的新手。我想知道如何创建 html 元素,以及如何使用 clojurescript 更改它们的属性。我似乎无法在网上找到很多相关信息。
最佳答案
ClojureScript 提供了与 JavaScript 和浏览器的良好互操作性。您可以像这样直接调用 JavaScript 全局变量和函数来查询和操作 DOM:
(-> js/document
(.getElementById "app")
(.-innerHTML)) ; returns contents of element with id 'app'
(-> js/document
(.getElementById "app")
(.-innerHTML)
(set! "Hello Clojure!")) ; Sets new content for element
结帐 ClojureScript cheatsheet有关 CLJS 中 JavaScript 互操作性的简短摘要。
但是,现代 Web 应用程序并不是使用这种直接的 DOM 操作构建的。 @scott-lowe's answer建议使用 Reagent,它是用于 React 的 ClojureScript 桥,React 是目前最流行的 UI JS 框架之一。开始使用 Web 应用程序的不错选择。
此外,我建议查看 re-frame ,它建立在 Reagent 之上,并为您的应用程序提供状态管理。开始的简单方法是安装 Leiningen build tool ,然后简单地说 lein new re-frame my-app-name
。这为您提供了一个很好的模板来开始试验。使用 lein figwheel
运行应用程序,您可以立即在浏览器中看到对 cljs 代码所做的更改。开始黑客攻击的好地方是 views.cljs,其中包含 hiccup-like您的主要应用程序的模板。
关于javascript - 如何使用 Clojurescript 与 html DOM 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45228474/