InstantiateReactComponent
2017-06-10 14:12:32 0 举报
React源码实例化ReactComponent过程
作者其他创作
大纲/内容
_instance
用于管理空的ReactELement
_stringText = '' + text;
_currentElement
ReactCompositeComponent(element)
foreach(element.props.children)
执行
_context
_currentElement=element
ReactElement===null||false
符合自定义组件render返回结果必须包裹在一个DOM元素内的要求
typeof ReactElement===string||number
ReactElement
ReactNodeTypes.COMPOSITE;
new MyCom1()
InstantiateReactComponent(ReactElement)
type:_myCom1.default
_tag=element.type
_renderedChildren
引用
typeofReactElement.type===string
用于管理DOM节点类型的ReactELement
用于管理文本节点类型的ReactElement
typeof ReactElement.type===function
引用返回结果
ReactNodeTypes.HOST
ReactDOMEmptyComponent(element)
ReactNodeTypes .getType(renderedElement)
用于管理用户自定义组件类型的ReactElement
_renderedComponent
ReactDOMComponent(element)
return
renderedElement
_instance.render()
ReactDOMTextComponent(element)
_renderedNodeType
ReactNodeTypes.EMPTY
_currentElement = null
自定义组件不负责具体的内容,它更多的是负责生命周期。具体的内容是由它的render方法返回的虚拟节点来负责渲染的。
收藏
0 条评论
下一页
为你推荐
查看更多