单个模块中有多个React组件
我是整个浏览器的新东西。 我一直在尝试使用browserify + reactify + gulp来转换,缩小和组合React应用程序。 只要我有一个单一的React.createClass
与一个module.exports = MyComponent
一切正常。 由于我有几个共享组件,我物理地托管在同一个文件中并跨项目重用,我想导出多个组件。 我试过一个数组:
module.exports = [Component1, Component2]
并且还尝试了一个具有多个属性的对象:
module.exports = {Comp1: Componenet1, Comp2: Component2}
,并尝试在对象中调用createClass
,但这没有帮助。
有没有办法做到这一点,或者我必须将每个组件分割成单独的JSX文件?
我已经将多个组件放在一个文件中,并按照您的建议导出对象。
module.exports = {
comp1: Component1,
comp2: Component2
}
然后他们在哪里使用
var comp1 = require('your/path/to/components').comp1;
var comp2 = require('your/path/to/components').comp2;
你可以这样做,将一个index.js文件放入你的/components/
文件夹中
/components/index.js
import Users from './Users/Users';
import User from './Users/User';
module.exports = {
User,
Users
}
进口
import { Users, User } from './components';
正如你所看到的,我命名了我的文件index.js ,它阻止了我将它写入导入声明中。 如果你想用除index.js以外的其他名称命名文件,你必须在导入中写入文件的名称,Node不会猜测它! ^^
我使用函数来返回组件。
module.exports = {
comp1: function(){
return Component1;
}
}
然后
var myCompontents = require('./components');
var comp1 = myComponents.comp1();
链接地址: http://www.djcxy.com/p/52103.html