v-for基本使用
语法: v-for=(项,索引) in 需要遍历的对象/数组
数组的更新检测
push() pop() shift() unshift() splice() sort() reverse() 这几个方法都会直接修改原来的数组
filter() concat() slice() 这几个方法不会替换原来的数组,而是会生成新的数组
v-for中的key是什么作用? diff算法
template(模板引擎)---->vnode(虚拟dom)------->真实dom 这里为什么要经过虚拟Dom,主要目的是为了进行多平台的适配.vdom下又有多个vnode节点
Vue中对列表的更新是怎么操作的呢?
在Vue中会对有Key和没有Key调用两个不同的方法;
有key,那么就使用patchKeyedChildren方法:
1.首先从头开始遍历.
2.从尾到头遍历
3. 如果旧节点遍历完了,依然有新的节点,那么新的节点就是添加(mount)
4.如果新的节点遍历完了,还有旧的节点,那么就移除旧的节点
5.杂乱的顺序,尽可能的把相同的元素进行复用
无key,那么就使用patchUnKeyedChildren方法:
1.比较长度, 如果旧的长度大于新的长度,那么就把旧的里面的数据移除
2.比较长度, 新的比较多.就创建新的节点.