关于MVVM的性能问题
老师您好,现在的MVVM框架都说对比传统直接操作dom在渲染性能上提高很多。关于这一点我不太理解,MVVM框架本质上也要触发dom更新呀,而且还多做了一层虚拟dom,还要比对虚拟dom为什么说渲染性能提升了?
正在回答 回答被采纳积分+1
同学你好 很早以前写了些文章 正好可以拿出来让你看下
“得益于 Virtual DOM,React 的渲染性能很好,甚于直接操作真实 DOM”
Virtual DOM 的性能优势是常常被人提及的一点,很多 React 初学者只知道操作虚拟 DOM 快,而不清楚具体发生了什么。
操作真实 DOM 的性能确实很差,然而要清楚的一点是,Virtual DOM 的改变最终还是要作用到真实 DOM 上的。在我们谈到 Virtual DOM 的性能时,我们说的其实是一种粗暴的渲染行为:将整个界面全部替换(重新渲染),在这种情况下,首先重新渲染得到相对轻量的 Virtual DOM,再通过对比(DIff)得到差异部分,再将差异部分像打补丁一样作用到真实 DOM 上,如此取得的性能提升是相对真实 DOM 的整体重新渲染而言的。
在事实上的传统开发中,我们手动操作真实 DOM,手动指定更新部位及更新方式,虽然常常需要维护两份视图与数据的对应关系,且常常容易出错导致数据视图不匹配,但手工更新行为的变更往往比对比计算的结果更精确。不排除虚拟 DOM 对比的计算结果要比手动指定更精确、改动范围更小的情况,但这种情况一般有限,何况由于多了渲染生成 Virtual DOM 并进行对比计算的过程,React 的方式在绝大部分情况下都是代价更大的。
以可接受的执行效率损失作为代价换取极大的开发效率提升,这是一个趋势,使用 React 的同时,也是顺应这一趋势的过程。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星