SUNYIMIN / react-review

react
2 stars 0 forks source link

为什么react的虚拟dom比js操作dom的性能高? #2

Open SUNYIMIN opened 4 years ago

SUNYIMIN commented 4 years ago

1.js操作dom会引起页面的回流和重绘,导致浏览器重新渲染页面,频繁的回流和重绘,浏览器会建立一个队列,把每次回流放入队列中,如果队列中的任务达到某个阈值,浏览器会对这些操作进行批量的处理,所以频繁的操作dom对于浏览器的性能会有一定的损耗 2.react中的react.creatElement()方法,会讲dom转成js对象树,这颗树上记录这dom的每一个节点,当前后两次不同的渲染,react的diff算法,会讲新的js对象树与旧的js对象树进行比较,通过patch记录变更的节点,然后将需要变更的地方进行渲染。从而降低浏览器性能的损耗

网页在浏览器的渲染过程可以参考:https://juejin.im/post/5e143104e51d45414a4715f7#heading-19