2016-10-13 40 views
0

我读thisReact的createElement(...)如何工作?什么是道具用于?

ReactElement createElement(
    string/ReactClass type, 
    [object props], 
    [children ...] 
) 

创建并返回给定类型的新ReactElement。参数类型 可以是html标签名称字符串(例如'div','span', 等)或ReactClass(通过React.createClass创建)。

这并没有真正向我解释[object props]会发生什么情况。为什么需要?它是干什么用的 ?

有人可以解释当拨打createElement[object props]会发生什么?他们如何使用?他们会被用来渲染元素吗?他们以后可以改变吗?它们是可变的还是不变的?

问题的原因:我试图找出how to use scalajs-react。

+1

此链接可能会有所帮助:https://facebook.github.io/react/docs/transferring-props.html –

+0

而不是createElement,你可以看看'扩展组件' – KOTIOS

+0

'扩展组件'?会解释一些事情吗?是不是只是另一个语法糖(复杂的东西)? – jhegedus

回答

2

前段时间丹阿布拉莫夫登载在Twitter上:

https://twitter.com/dan_abramov/status/781620845185732608

(我认为这是那开始“ React如何工作 - 实施说明“post abhirathore2006展示)。

你可以看到,这里一掷:http://jsbin.com/qiguyibolu/1/edit?js,output

例如,那是做什么用的道具发生的事情:

var node = document.createElement(type); 
Object.keys(props).forEach(propName => { 
    if (propName !== 'children') { 
     node.setAttribute(propName, props[propName]); 
    } 
}); 

他们最终为节点属性!所以我真的建议您阅读https://facebook.github.io/react/contributing/implementation-notes.html以更深入地了解我们何时调用函数传递道具,以及如何更新它们。人们做了很好的工作来解释事情如何在引擎盖下工作。我仍然在自己做:)

相关问题