ReactDOM.render(element, container[, callback])
在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null
,常见的用法就是:
ReactDOM.render(<App />, document.getElementById('root'));
ReactDOM.render的源码:
const ReactDOM: Object = {
//服务端使用hydrate方法渲染节点
hydrate(element: React$Node, container: DOMContainer, callback: ?Function) {
invariant(
isValidContainer(container),
'Target container is not a DOM element.',
);
// TODO: throw or warn if we couldn't hydrate?
return legacyRenderSubtreeIntoContainer(
null,
element,
container,
//true是让服务端尽可能复用节点,提高性能
true,
callback,
);
},
render(
//元素
element: React$Element<any>,
//容器
container: DOMContainer,
//应用渲染结束后,调用的函数
callback: ?Function,
) {
//错误抓取
invariant(
isValidContainer(container),
'Target container is not a DOM element.',
);
//render方法本质是返回了函数legacyRenderSubtreeIntoContainer
return legacyRenderSubtreeIntoContainer(
null,
element,
container,
//render不会复用节点,因为是前端渲染
false,
callback,
);
},
}
基于本人对ReactDOM.Render的了解不多,以下为大家赠送一张 ReactDOM.Render 的流程图大家可以看一看哦