我正在使用试剂在clojurescript中编写插件功能。 我想在现有的react,flux应用程序中使用它。
我应该如何连接这两个?
答案 0 :(得分:7)
由于ClojureScript编译器会吐出JavaScript代码,因此集成应该非常简单。只需将^:export
注释添加到您要从JavaScript代码中访问的任何ClojureScript定义。
; ClojureScript
(ns my-namespace.core)
(defn ^:export my-identity [x] x)
// call from JavaScript
my_namespace.core.my_identity(5); // Notice how "-" is replaced with "_"
如果您想从ClojureScript代码中引用JavaScript函数/变量,只需在全局名称前加上js/
。
; Calling global JavaScript function from ClojureScript
(js/alert "Hello!")
请查看此blog post on ClojureScript/JavaScript interop以获取更多示例。
ClojureScript Cheatsheet上的JavaScript Interop部分也是一个很好的参考。例如,它记录了clj->js
和js->clj
函数,您需要使用这些函数在Clojure样式对象(关键字,向量,映射)和JavaScript样式对象(字符串,数组,映射)之间进行转换/对象)。