【Under-the-hood-ReactJS-Part4】React源码解读
接上文,
React流程图:
https://bogdan-lyashenko.gith...
子组件挂载
我们继续探究mount方法。
如果渲染的标签里有复杂的html标签,如video,form,textarea等,React会包装一些额外的信息。React会对一些多媒体相关的事件添加一些额外的监听器,如audio标签的volumechange事件,或者就简单包装下一些标签的原生行为,如select,textarea等等。有很多类似于上面的包装器,如ReactDOMSelect,ReactDOMTextarea(位于src/renderers/dom/client/wrappers/folder)。对于我们的实例代码而言,就是div标签,所以没有额外的处理过程。
属性验证
紧接着的被调用的验证方法用于确保props被正确设置,否则,React会抛出异常。比如,如果设置了props.dangerouslySetInnerHTML(调用这个方法一般用于插入一段html字符串)且参数对象的__html属性缺失,则下面的错误会被抛出:
props.dangerouslySetInnerHTML must be in the form {__html:...}. Please visit https://fb.me/react-invariant... for more information.创建HTML元素
最后,真正的html元素会通过document.createElement方法被创建,对于我们来说就是div标签。在我们引入虚拟DOM之前,你在这一步第一次看到它们。
相关推荐
游走的豚鼠君 2020-11-10
81417707 2020-10-30
ctg 2020-10-14
小飞侠V 2020-09-25
PncLogon 2020-09-24
jipengx 2020-09-10
颤抖吧腿子 2020-09-04
wwzaqw 2020-09-04
maple00 2020-09-02
青蓝 2020-08-26
罗忠浩 2020-08-16
liduote 2020-08-13
不知道该写啥QAQ 2020-08-02
pengruiyu 2020-08-01
wmd看海 2020-07-27
孝平 2020-07-18
Eduenth 2020-07-05
iftrueIloveit 2020-07-04