如何将clojurescript集成到现有的javascript代码库?

时间:2016-05-24 20:23:15

标签: reactjs clojure clojurescript reagent

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

我应该如何连接这两个?

1 个答案:

答案 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->jsjs->clj函数,您需要使用这些函数在Clojure样式对象(关键字,向量,映射)和JavaScript样式对象(字符串,数组,映射)之间进行转换/对象)。