我已经构建了一个主要使用Angular的应用程序。现在我想将这个项目转换成Clojurescript。我们都知道Clojurescript与JavaScript有很好的互操作性,但是用其他方法可行吗?Clojurescript与JavaScript的互操作性
常规JavaScript/Angular代码如何利用从Clojurescript生成的JavaScript?
这个梦想是在clojurescript中编写新的特性,并让它们与遗留代码并行工作。
有关这方面的任何提示或技巧值得欢迎。
我已经构建了一个主要使用Angular的应用程序。现在我想将这个项目转换成Clojurescript。我们都知道Clojurescript与JavaScript有很好的互操作性,但是用其他方法可行吗?Clojurescript与JavaScript的互操作性
常规JavaScript/Angular代码如何利用从Clojurescript生成的JavaScript?
这个梦想是在clojurescript中编写新的特性,并让它们与遗留代码并行工作。
有关这方面的任何提示或技巧值得欢迎。
Clojurescript变量,函数和deftypes /记录是正常的JS变量,函数和构造函数/对象,所以你可以去你的javascript中的cljs.core.abc()
并调用clojurescript没有问题。
注意事项有:
cljs.core/<
变成cljs.core._LT_
。你有多种选择:
^:export
(如果您定义名称)或类似goog.exportSymbol
显式导出的CLJS函数。 CLJS和遗留代码部署在单独构建的单独JS文件中。谢谢你的彻底破败。它让我更好地了解可行的选择。作为一个后续问题:Mori在浏览器中是否适合数据量大的应用?我在谈论速度还是会比直接去Cljs慢? – droidballoon 2014-11-14 21:12:47
森*是* clojurescript,只是包装很好,从js使用。与数据结构无关的cljs中的东西通过无效代码消除自动删除。所以没有速度差异。 Facebook有一个ImmutableJs库,其目的与Mori类似,但是根本不与cljs共享代码。它的速度也是可比的。 – 2014-11-15 15:28:21
对于ClojureScript中的角度集成,您可以使用the gyr extension。 对于从Clojure类型到Java脚本类型的数据转换,您可以使用clj->js。
不错。必须仔细检查。 – droidballoon 2014-11-17 07:59:19
一个很好的博客文章http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/ – archie 2014-11-14 17:27:25