目前正在学习深入浅出React【真正吃透React知识链路与底层逻辑】共23讲_哔哩哔哩_bilibili
1. JSX是什么
JSX是一种ES5之后流行的语法糖。这种语法糖的本质是React.createElement()。
在多重嵌套的JSX里面,React.createElement也是被重复嵌套使用的。
以下是JSX变成真是DOM的过程:
- 编译,babel起到了将JSX翻译为较低等级的浏览器也能支持的语法也就是React.createElement(type, [props], [...children])
- 然后,React.createElement,将传入参数进行格式化并且返回React.Element,也就是虚拟DOM
- React.Element其实就是一个Object的实例,里面的参数包含,$$typeof, type, key, ref, owner,props={children}
- 最后所有的React.Element都会被返回到最上层的那个React.Element里面成为一个特别大的object
- 这个object会被ReactDOM.render拿来render,然后就会成为真实的DOM
- ReactDOM.render(element, container, [callback])
- element这里就是React Element
- container是真实DOM里面的一个容器