我该如何在Reagent、Om、Rum、Quiescent或Brutha中使用不同版本的React?
我该如何在Reagent、Om、Rum、Quiescent或Brutha中使用不同版本的React?
由于此问题经常被问到,因此我来进行自我回答:
首先,您需要告诉Leiningen排除cljsjs/react
依赖项:
[rum "0.6.0" :exclusions [[cljsjs/react] [cljsjs/react-dom]]]
如果您有其他依赖项引入了cljsjs/react
,您可以使用全局排除:
:exclusions [[cljsjs/react] [cljsjs/react-dom]]
接下来,您需要满足编译器,因为它找不到命名空间cljsjs.react
和cljsjs.react.dom
。为此,在源目录中创建两个包含这些命名空间的文件。例如:
- src/cljsjs/react.cljs
- src/cljsjs/react/dom.cljs
两者只需要命名空间声明,其他可以为空 (ns cljsjs.react)
.
现在你可以使用普通的<script>
标签,在HTML文件中手动包含任何你想要的React版本。
你也可以使用foreign-libs编译选项。