Fe-interview: [react] render方法的原理你有了解吗?它返回的数据类型是什么?

Created on 16 Jul 2019  ·  3Comments  ·  Source: haizlin/fe-interview

[react] render方法的原理你有了解吗?它返回的数据类型是什么?

react

Most helpful comment

render的第一个参数通过babel转为React.createElement,后者根据参数类型的不同调用不同的内部方法来转换为原生dom并生成真实dom插入到容器中.

对原生html标签调用ReactDOMComponent的mountComponent方法,将element转化为真实的dom节点, 并插入到对应的container中,返回realDom;
对于自定义组件,递归调用ReactCompositeComponentWrapper转化为原生dom标签,然后和上面一样通过ReactDOMComponent的mountComponent方法,生成realDom;
string和number,调用的是ReactDOMTextComponent;
null和boolean,调用的是ReactEmptyComponment;

All 3 comments

element, string , boolean , undefind, null

ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;

render的第一个参数通过babel转为React.createElement,后者根据参数类型的不同调用不同的内部方法来转换为原生dom并生成真实dom插入到容器中.

对原生html标签调用ReactDOMComponent的mountComponent方法,将element转化为真实的dom节点, 并插入到对应的container中,返回realDom;
对于自定义组件,递归调用ReactCompositeComponentWrapper转化为原生dom标签,然后和上面一样通过ReactDOMComponent的mountComponent方法,生成realDom;
string和number,调用的是ReactDOMTextComponent;
null和boolean,调用的是ReactEmptyComponment;

Was this page helpful?
0 / 5 - 0 ratings