A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ljhsnmbb 中级黑马   /  2019-7-19 11:39  /  924 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ljhsnmbb 于 2019-7-19 11:41 编辑


如果要在JS里写HTML,就是创造一个一个的DOM对象,用JS来写,会非常的冗余并且不能一目了然的看清楚DOM的结构。所以就扩展成了JSX,直接用HTML的写法在js中写DOM。

采用JSX,就会有一个编译的过程。将HTML写的DOM翻译成js的对象

为什么会有中间这一层?

原因之一:我们拿到一个UI表示的对象之后,不一定会把它就在渲染在普通的页面上,我们可能会把它渲染到一个canvas(react-canvas)上,或者手机app(react-native)上。这也是为什么要把react-dom单独抽离(而不是包括在react中)的原因。
原因之二:有了这样一个对象之后,就可以在数据改变需要重新渲染对象的时候,用比较快的算法来操作js对象(避免直接操作页面上的DOM),这样可以减少浏览器重排,极大的优化性能。 (大概react的每次渲染只更新有改变的部分就是和这个设计有关吧)


本文来自链接:https://www.jianshu.com/p/377765d5397c

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马