react虚拟dom的用处:1、提升react代码性能,虚拟dom是一个js对象,创建一个js对象消耗的性能和创建一个真实dom要小很多,把创建真实dom替换为创建虚拟dom就会有极大的性能上的提升;2、实现跨端应用,在浏览器端是将虚拟dom转换为一个个的浏览器dom节点,也可以将他转换为原生应用的组件来实现跨端应用。
本教程操作环境:windows10系统、react17.0.1版、dell g3电脑。
react虚拟dom有什么用处1.极大的提升了性能
2.它使得跨端应用( react native )得以实现。在浏览器端是将虚拟dom转换为一个个的浏览器dom节点。也可以将他转换为原生应用的组件,跨段应用就实现了。
为什么能提升性能
如果没有虚拟dom,那么就会直接创建真实的dom,每次数据改变就会去创建一个真实的dom,然后真实的dom比较,再去修改真实的dom,创建真实dom是需要消耗很多性能的(因为js生成dom树会调用web application级的api,这种级别的api性能损耗是很大的),这样就会非常消耗性能。
有了虚拟dom就不一样了,虚拟dom是一个js对象,创建一个js对象消耗的性能和创建一个真实dom要小很多,把创建真实dom替换为创建虚拟dom就会有极大的性能上的提升。
虚拟dom
虚拟dom是一个js对象
<div id='abc'><span>hello world</span></div>//真实dom['div', {id: 'abc'}, ['span', {}, 'hello world']]//虚拟dom
页面加载和更新过程
1.state数据
2.jsx模板
3.数据 + 模板生成虚拟dom
4.用虚拟dom来生成真实dom
5.state发生变化
6.数据 + 模板 生成新的虚拟dom
7.比较原始的虚拟dom和新的虚拟dom(diff算法)
8.直接操作dom,改变不一样的地方
扩展知识:
虚拟dom的目的是什么?
为了实现按页面中dom元素的高效更新;
在传统的 web 应用中,我们往往会把数据的变化实时地更新到用户界面中,于是每次数据的微小变动都会引起 dom 树的重新渲染。
虚拟dom的目的是将所有操作累加起来,统计计算出所有的变化后,统一更新一次dom。
极大的提升了性能
它使得跨端应用( react native )得以实现。在浏览器端是将虚拟dom转换为一个个的浏览器dom节点。也可以将他转换为原生应用的组件,跨段应用就实现了。
dom和虚拟dom的区别
1,虚拟dom不会进行排版与重绘操作
2,虚拟dom进行频繁修改,然后一次性比较并修改真实dom中需要改的部分(注意!),最后并在真实dom中进行排版与重绘,减少过多dom节点排版与重绘损耗
3,真实dom频繁排版与重绘的效率是相当低的
4,虚拟dom有效降低大面积(真实dom节点)的重绘与排版,因为最终与真实dom比较差异,可以只渲染局部
【相关推荐:javascript视频教程、web前端】
以上就是react虚拟dom有什么用处的详细内容。