美文网首页
虚拟dom 性能比原来dom好的原因.

虚拟dom 性能比原来dom好的原因.

作者: onedam | 来源:发表于2021-10-29 21:41 被阅读0次

https://www.jianshu.com/p/35130273cf86 good

http://www.qiutianaimeili.com/html/page/2018/05/iadkijfuaic.html

原来使用js更新 dom 的时候 一般用 innerHTML . 这样一大坨,每次更新 没变的也会删除后重建.

虚拟dom相当于在js和真实dom中间加了一个缓存,利用dom diff算法避免了没有必要的dom操作,从而提高了性能.

准确说法,虚拟dom 机制提供了 精确的要修改的dom节点. 所以性能有了提升.
真正的dom操作还是有的.

如果我有1000条数据,我修改了其中两条,真实的DOM会重新渲染1000条数据,只要发生了变化,就会重新渲染全部数据,虚拟dom 会生成1000个对象 (它是不会被浏览器图形化渲染的),虚拟dom 里的东西会和真实dom绑定在一起,当数据发生变化 虚拟dom和之前的虚拟dom 会去做数据的比较,当数据发生变化时,才会去更新数据发生改变的那部分真实的dom元素

但是数组没有默认的标识,所以数组每次改变都要重新排序,性能影响较大,所以在实时侦听遍历数组数据时,需要引入key属性,用来标识数组数据,一般使用下标标识

虚拟 dom 相当于在 js 和真实 dom 中间加了一个缓存,利用 dom diff 算法避免了没有必要的 dom 操作,从而提高性能。
JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异把 2 所记录的差异应用到步骤 1 所构建的真正的 DOM 树上,视图就更新了。

相关文章

网友评论

      本文标题:虚拟dom 性能比原来dom好的原因.

      本文链接:https://www.haomeiwen.com/subject/gdjwaltx.html