javascript - 如何使用 Clojurescript 与 html DOM 交互?

标签 javascript html clojurescript

我是 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/

相关文章:

javascript - Nodejs/Javascript 获取任何进程的进程内存

javascript - 跨域 Javascript - 拉取元标记

clojurescript - 为什么要为记录定义工厂函数?

clojure - 您如何在 clojurescript 中使用 edn 阅读器创建的 map ?

javascript - 无法通过 ajax 调用加载 php 页面

javascript - 单元格悬停时的工具提示图像,Google 电子表格

javascript - kinetic.js 循环中多个点击事件,但只注册最后一个

html - GXT Info.display 无法在 IE8 的屏幕上正确呈现

html - 相对定位的 HTML 元素与父元素重叠

Clojure om next 多个打印方法异常