ReactJS:出口工厂,捷径?

ReactJS: exporting factories, great shortcut?

我想知道为什么使用 ReactJS 最好在每次调用时创建工厂(根据:https://gist.github.com/sebmarkbage/d7bce729f38730399d28

出口 class 和工厂不是更好吗?

button1Class = createClass
   render: -> ...

button2Class = createClass
   render: -> ...

module.exports = { button1: button1Class, button2: button2Class}

那我需要做

Button1 = createFactory( require('buttons').button1 )
Button2 = createFactory( require('buttons').button2 )

每次我在一个文件中需要它们(我有多个文件,所以多个文件需要不同的文件)?

为什么不出口 classes 和工厂?

button1Class = createClass
   render: -> ...

button2Class = createClass
   render: -> ...

module.exports = { 
    button1Class: button1Class, 
    button2Class: button2Class, 
    button1: createFactory( button1lass )
    button2: createFactory( button2Class )
}

所以我只需要做

button1 = require('buttons').button1 # no factory needed
button2 = require('buttons').button2 # no factory needed

原因是它使您的导出与 jsx 不兼容。

如果你不使用 jsx,你只需要创建工厂。但是然后说在你的下一个项目中你想使用 jsx 并重新使用你的组件你将不得不去更改文件使它们与你的原始项目不兼容。

基本上,创建工厂是消费者的责任。

https://facebook.github.io/react/blog/2014/10/14/introducing-react-elements.html#anti-pattern-exporting-factories

我认为导出两者是一种选择,但会给那些不使用它们的人带来开销。