前端局部刷新

引子

virtual-dom(简称vdom)的概念大规模的推广还是得益于react出现。

相比于频繁的手动去操作domvdom出现后,
框架根据标签结构生成虚拟dom树(virtual-dom-tree简称vtree),然后保留着这个vtree不能释放,当下一次数据变化后,再生成一个新的vtree与上一个比较,然后把差异部分更新到真实dom

我们只需要改变数据,由框架自动diff vdom然后再更新到dom上。所以后续我们只关注数据的变化即可,不再与dom直接打交道。

目前许多前端框架使用vdom已然是标配了。

问题

vdom虽好,但不是在任何场景下都适用,比如在寸土寸金的移动端。

由于框架需要保留着完整的vtree、变化后需要整个diff vtree,所以整体来看性能并不高(网上一些文章说引入vdom可以提升性能的说法是不准确的),在移动端的某些场景下,vdom的使用反而会带来性能问题。

移动端的列表场景,活动页面等,通常数据变化时需要对大块区域进行更新,在追求性能的要求下,我们能否仍然保留对开发人员友好,也能达到更高性能的刷新方式呢?

方案

原生dom操作一片html最高效的方法是innerHTML

再看一下我们的模板写法(这里以underscote.template的写法为例,其它写法也是同样的道理)

原文链接

猜你喜欢

转载自blog.csdn.net/weixin_40581617/article/details/80898259