3

我正在使用试剂在 clojurescript 中编写插件功能。我想在现有的反应通量应用程序中使用它。

我应该如何连接两者?

4

1 回答 1

8

由于 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!")

查看有关 ClojureScript/JavaScript 互操作的博客文章以获取更多示例。

ClojureScript Cheatsheet上的 JavaScript Interop 部分也是一个很好的参考。例如,它记录了clj->jsjs->clj函数,您需要使用这些函数在 Clojure 样式对象(关键字、向量、映射)和 JavaScript 样式对象(字符串、数组、映射/对象)之间进行转换。

于 2016-05-25T04:19:12.313 回答