【问题标题】:How to integrate clojurescript to existing javascript code base?如何将 clojurescript 集成到现有的 javascript 代码库?
【发布时间】:2016-05-24 20:23:14
【问题描述】:

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

我应该如何将两者联系起来?

【问题讨论】:

    标签: reactjs clojure clojurescript reagent


    【解决方案1】:

    由于 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 互操作部分也是一个很好的参考。例如,它记录了 clj->jsjs->clj 函数,您需要使用它们在 Clojure 样式对象(关键字、向量、映射)和 JavaScript 样式对象(字符串、数组、映射/对象)之间进行转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      相关资源
      最近更新 更多