前面的话
前端日问,巩固基础,不打烊!!!
解析
面试官问虚拟DOM的优势是啥?你答:直接操作DOM性能不好。
操作DOM性能不好?为什么不好? 。。。
怎么答才好: 虚拟DOM解决了什么问题? 为什么频繁操作DOM性能会差?
解答
这里只是我个人看法,有错误请指出。
- 首先: 浏览器中GUI渲染线程负责渲染页面,js引擎线程负责解析、执行js代码,如果频繁的操作DOM,那么这两个线程会频繁的切换。如果所操作的DOM会引发大量的回流或者重绘,这样性能肯定不好
- 其次:如果不使用虚拟dom,比如现在要操作100次dom,这些操作都会引发回流与重绘,这样浏览器重新渲染100次,并且每一次渲染都是很大的消耗。使用虚拟dom后,因为它是js构造的对象,存在内存中,这100次dom操作都是修改的虚拟dom,是js的计算,修改完毕后,再替换为真实的dom去渲染(渲染1次),而不是渲染100遍。这样减少了浏览器渲染的次数,提高了性能。