Jak wywołać kod ClojureScript z Javascript (nie odwrotnie!).call ClojureScript z Javascript
Jest już możliwe call Clojure from Java, ale nie wiem jak zrobić odpowiednik w ClojureScript.
Jak wywołać kod ClojureScript z Javascript (nie odwrotnie!).call ClojureScript z Javascript
Jest już możliwe call Clojure from Java, ale nie wiem jak zrobić odpowiednik w ClojureScript.
eksportować funkcje, które chcesz mieć dostępne w js używając ^:export
, a potem po prostu nazwać jako my.ns.fn()
cljs:
(ns hello-world.core)
(defn ^:export greet [] "Hello world!")
JS:
hello_world.core.greet()
Zobacz the accepted answer do "Clojurescript interoperability with JavaScript", aby uzyskać szczegółowe informacje.
Clojurescript kompiluje do Javascript, dzięki czemu można go używać tak jak jest.
Datascript jest doskonałym źródłem inspiracji do nauki tego, jest napisane w Clojurescript i jest używane przez vanilla javascript javascript as is.
W pseudo kod, który daje:
<script src="https://github.com/tonsky/datascript/releases/download/0.11.6/datascript-0.11.6.min.js"></script>
...
...
var d = require('datascript');
// or
// var d = datascript.js;
var db = d.empty_db();
var db1 = d.db_with(db, [[":db/add", 1, "name", "Ivan"],
[":db/add", 1, "age", 17]]);
var db2 = d.db_with(db1, [{":db/id": 2,
"name": "Igor",
"age": 35}]);
var q = '[:find ?n ?a :where [?e "name" ?n] [?e "age" ?a]]';
assert_eq_set([["Ivan", 17]], d.q(q, db1));
assert_eq_set([["Ivan", 17], ["Igor", 35]], d.q(q, db2));
Można zobaczyć sekcję współdziałania tego blog entry.
Na koniec przejdź do opisu J avascript-based test suite.
Dziękujemy, że było przydatne, zwłaszcza w tym: https://github.com/tonsky/datascript/blob/18ab268d4682f2ef0c75ce42548494726009f82f/src/datascript/js.cljs#L62 – nha