我已經構建了一個主要使用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