vue
文章平均质量分 92
double丶dragon
这个作者很懒,什么都没留下…
展开
-
详解Vue的diff算法
具体来说,就是首先对根节点进行对比,如果相同则将旧节点关联的真实dom的引用挂到新节点上,然后根据需要更新属性到真实dom,然后再对比其子节点数组;在对比其子节点数组时,vue对每个子节点数组使用了两个指针,分别指向头尾,然后不断向中间靠拢来进行对比,这样做的目的是尽量复用真实dom,尽量少的销毁和创建真实dom。当组件创建和更新时,vue均会执行内部的update函数,该函数在内部调用render函数生成虚拟dom树,组件会指向新树,然后vue将新旧两树进行对比,找到差异点,最终更新到真实dom。原创 2024-03-13 23:03:24 · 990 阅读 · 0 评论 -
Vue响应式原理
watcher会设置一个全局变量,让全局变量记录当前负责执行的watcher等于自己,然后再去执行函数,在函数的执行过程中,如果发生了依赖记录dep.depend(),那么Dep就会把这个全局变量记录下来,表示有一个watcher用到了我这个属性。对于数组,重写了一部分能改变原数组的隐式的原型方法(如push,pop,shift,unshift),Vue会更改它的隐式原型,之所以这样做,是因为Vue需要监听那些可能改变数组内容的方法。要实现的目标非常简单,就是把一个普通的对象转换为响应式的对象。原创 2024-03-12 23:42:14 · 958 阅读 · 0 评论