私は試薬を使ってクローズアップのアドオン機能を書いています。 これを既存の反応型フラックスアプリで使用したいと思います。clojurescriptを既存のjavascriptコードベースに統合するにはどうすればよいですか?
2つの接続方法は?
私は試薬を使ってクローズアップのアドオン機能を書いています。 これを既存の反応型フラックスアプリで使用したいと思います。clojurescriptを既存のjavascriptコードベースに統合するにはどうすればよいですか?
2つの接続方法は?
ClojureScriptコンパイラはJavaScriptコードを吐き出しているので、統合は非常に簡単です。 JavaScriptコードからアクセスしたいClojureScript定義に、^:export
注釈を追加するだけです。
; 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相互運用機能のセクションも参考にしてください。たとえば、Clojureスタイルのオブジェクト(キーワード、ベクトル、マップ)とJavaScriptスタイルのオブジェクト(文字列、配列、マップ/オブジェクト)の間で変換するために使用する必要があるclj->js
とjs->clj
関数を記述します。