So rufen Sie ClojureScript-Code von Javascript (nicht andersherum!).Aufruf ClojureScript von Javascript
Es ist bereits möglich, call Clojure from Java, aber ich weiß nicht, wie Sie das Äquivalent in ClojureScript tun.
So rufen Sie ClojureScript-Code von Javascript (nicht andersherum!).Aufruf ClojureScript von Javascript
Es ist bereits möglich, call Clojure from Java, aber ich weiß nicht, wie Sie das Äquivalent in ClojureScript tun.
Export Funktionen, die Sie durch die Verwendung ^:export
in js zur Verfügung haben wollen, dann rufen Sie einfach als my.ns.fn()
cljs:
(ns hello-world.core)
(defn ^:export greet [] "Hello world!")
js:
hello_world.core.greet()
Siehe the accepted answer zu "Clojurescript interoperability with JavaScript" für detaillierte Informationen.
Clojurescript wird in Javascript kompiliert, damit Sie es so verwenden können, wie es ist.
Datascript ist eine große Quelle der Inspiration, um dies zu lernen, ist es in Clojurescript geschrieben und wird über vanilla javascript Javascript verwendet, wie es ist.
In Pseudo-Code, gibt:
<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));
Sie können den Interop-Abschnitt dieser blog entry sehen.
Zuletzt, gehen Sie durch das datascript j avascript-based test suite.
Vielen Dank, dass war nützlich, vor allem dies: https://github.com/tonsky/datascript/blob/18ab268d4682f2ef0c75ce42548494726009f82f/src/datascript/js.cljs#L62 – nha