将不同的 React 版本与 clojurescript 反应库(试剂、OM、朗姆酒、静止)一起使用

Clo*_*tly 3 clojurescript om reagent

如何将不同的 React 版本与 Reagent、Om、Rum、Quiescent 或 Brutha 一起使用?

Clo*_*tly 6

自我回答,因为这经常被问到:

首先,您必须告诉 Leiningen 排除cljsjs/react依赖项:

[rum "0.6.0" :exclusions [[cljsjs/react] [cljsjs/react-dom]]]
Run Code Online (Sandbox Code Playgroud)

如果您有其他依赖项,cljsjs/react您可以使用全局排除:

:exclusions [[cljsjs/react] [cljsjs/react-dom]]
Run Code Online (Sandbox Code Playgroud)

接下来你必须满足编译器,因为它不会找到命名空间cljsjs.reactcljsjs.react.dom. 为此,在源目录中创建两个保存这些命名空间的文件。例如

- src/cljsjs/react.cljs
- src/cljsjs/react/dom.cljs
Run Code Online (Sandbox Code Playgroud)

两者都只需要命名空间声明,否则可以为空(ns cljsjs.react)

现在,您可以使用普通<script>标签在 HTML 文件中手动包含您想要的任何 React 版本。

选择:

您还可以使用foreign-libs 编译器选项