react ReactReconciler调度模块分析

简况

ReactReconciler在之前有提及 这里再重复一遍

它用于发起组件的挂载、卸载、重绘机制

API说明
mountComponent初始化组件并渲染成html标记 并绑定事件
getHostNode
unmountComponent
receiveComponentcontent & refs变化时候触发更新组件的函数
performUpdateIfNecessary调用setState、forceUpdate方法时候会触发这个流程

ReactReconciler是一个调度模块

它会按照规划对要操作获取对应实例来进行操作。它的调度由instantiateReactComponent来负责,一共会返回四种情形的情况。

  • ReactEmptyComponent.create -> ReactDOMEmptyComponent实例
  • ReactHostComponent.createInternalComponent -> ReactDOMComponent实例
  • new element.type(element) -> ReactNativeBaseComponent实例
  • new ReactCompositeComponentWrapper(element) -> ReactCompositeComponentWrapper实例

在这四种实例的原型上,都同样有mountComponent,getHostNode,unmountComponent,receiveComponent四个同名方法。

ReactDOMComponent

这部分参见ReactDOMComponent的分析

ReactDOMEmptyComponent

mountComponent

这个方法返回一个注释节点。和ReactDOMComponent的mountComponent一样,有浏览器版本也有一个服务端版本。

receiveComponent

空函数

getHostNode

1
return ReactDOMComponentTree.getNodeFromInstance(this);

unmountComponent

1
ReactDOMComponentTree.uncacheNode(this);