请教老师关于vue渲染
问题描述:
把methods里一个方法放在视图层里调用,无论哪个数据发生改变后都会再次调用这个方法。
所以我一直以为流程是,数据改变后会全局更新视图层,更新时视图层重新收集数据依赖,并把发生变化的部分局部渲染到DOM。
想问下老师实际流程是啥
35
收起
正在回答
1回答
同学你好,解答如下:
当通过一个点击事件来改变数据时,Object.defineProperty会监听到数据变化,立刻触发视图的更新。在这个过程中vue使用虚拟DOM进行局部更新,vue会将真实DOM数据抽取出来,以对象的形式模拟树形结构,然后新旧vnode对比,得出最小的更新范围,最后更新DOM。在更新节点的过程中采用的是diff算法,diff的过程就是调用patch函数,比较新旧节点,一边比对一边给真实DOM打补丁,以最小的代价完成DOM更新。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星