关于虚拟 DOM 是否会一直占用内存的疑问?

来源:4-5 深入了解虚拟DOM

leungkaichun

2019-06-26

图片描述
我看了虚拟 DOM 的两节视频,有些疑问?
(1)、在首次生成真实的 DOM 后,用于生成真实 DOM 的虚拟 DOM 为了和下一次 state 发生变化时做对比会被销毁吗?
(2)、(1) 中提到的虚拟 DOM 如果没有被销毁,那是否会一直占用着内存空间,一直保留一个虚拟 DOM 在内存中,会不会很耗内存,如果虚拟 DOM 很大,那页面是不是会很卡?相反,如果这个虚拟 DOM 被销毁了,它是什么时候被销毁的(在什么时机销毁它)?
(3)、state 发生变化的时候,旧的虚拟 DOM 和新的虚拟 DOM 会发生对比。那么这哥俩对比后,它们发生了什么?用新的虚拟 DOM 去更新旧的虚拟 DOM 上有差异的节点,然后把新的虚拟 DOM 销毁;还是用什么办法合并两个虚拟 DOM 成另一个新的虚拟 DOM,然后把他们都从内存中清理掉;还是……别的什么?

写回答

1回答

Dell

2019-06-27

1,2 会被销毁,销毁了就没有内存占用了,你整个过程中永远最多只会有两个vitrual dom树。

3. 老的销毁掉,只保存新的

0
2
Dell
回复
把匪徒
没有销毁,而是把上一次的虚拟DOM保存起来,供下次对比使用。
2021-03-17
共2条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程