Javascript 我怎么能';互换';在我的应用程序中为react/addon作出反应?
我想用性能的东西。如果我这样做的话:Javascript 我怎么能';互换';在我的应用程序中为react/addon作出反应?,javascript,node.js,reactjs,browserify,Javascript,Node.js,Reactjs,Browserify,我想用性能的东西。如果我这样做的话: var React = require('react/addons'); 在我自己的模块中,库(react引导、react路由器等)最终使用了另一个普通react副本,结果出现了问题。我正在使用browserify 是否有解决方法或其他方法可以做到这一点?需要react和react/addons将为您提供相同的对象react/addons需要与react相同的模块(lib/react),而且react/addons甚至会对该对象进行变异,以便需要react
var React = require('react/addons');
在我自己的模块中,库(react引导、react路由器等)最终使用了另一个普通react副本,结果出现了问题。我正在使用browserify
是否有解决方法或其他方法可以做到这一点?需要
react
和react/addons
将为您提供相同的对象react/addons
需要与react
相同的模块(lib/react
),而且react/addons
甚至会对该对象进行变异,以便需要react
的任何人也能获得这些插件
如果您的包中有多个版本的React,那是因为您使用的库将
React
作为依赖项,而不是对等依赖项。您应该使用npm重复数据消除
来避免这种情况。但是react-router
将react
作为对等依赖项,因此react-router
将获得与您的模块相同的react
模块实例(带有附加组件)。不知道您使用的其他依赖于React的软件包。结果发现问题出在我的gulpfile上。有关寻找browserify shim的意见,请发送至Tx,以帮助我找到解决方案:
My browserify task(from)在开发过程中使用browserify.external(..)构建单独的vendors.js(libs)和main.js(My app)捆绑包,以从main.js中排除libs。我只需要添加“react/addons”作为一个外部库和“react”
这里解释了这个问题:
您可能希望为React w/插件创建一个browserify垫片,这样每个需要React实例的文件都会得到您告诉它的版本。我检查了所有的lib,它们都将其作为对等依赖项。在审阅了这里的评论之后,我发现了这个问题。即将发布答案。