单个模块中有多个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

上一篇: Multiple React components in a single module

下一篇: Performing jsx transforms on the client