vue-14key的作⽤

72 阅读1分钟

方向:1、给出结论,key的作用是优化patch性能2、key的必要性3、实际使用方式4、总结,可从源码层面描述一下vue如何判断两个节点是否相同

    1. key的作⽤主要是为了更⾼效的更新虚拟DOM。

    1. vue在patch过程中判断两个节点是否是相同节点是key是⼀个必要条件,渲染⼀组列表时,key往往是唯⼀标 识,所以如果不定义key的话,vue只能认为⽐较的两个节点是同⼀个,哪怕它们实际上不是,这导致了频繁 更新元素,使得整个patch过程⽐较低效,影响性能。

    1. 实际使⽤中在渲染⼀组列表时key必须设置,⽽且必须是唯⼀标识,应该避免使⽤数组索引作为key,这可能 导致⼀些隐蔽的bug;vue中在使⽤相同标签元素过渡切换时,也会使⽤key属性,其⽬的也是为了让vue可以 区分它们,否则vue只会替换其内部属性⽽不会触发过渡效果。

    1. 从源码中可以知道,vue判断两个节点是否相同时主要判断两者的key和元素类型等,因此如果不设置key, 它的值就是undefined,则可能永远认为这是两个相同节点,只能去做更新操作,这造成了⼤量的dom更新 操作,明显是不可取的。

n1.type === n2.type && n1.key === n2.key