HcySunYang / vue-design

📖 master分支:《渲染器》
http://hcysun.me/vue-design/zh/
6k stars 918 forks source link

vue会自动给vnode添加key吗? #341

Open wisonxiang opened 5 months ago

wisonxiang commented 5 months ago

vue渲染器在更新列表时,会触发diff算法,diff算法依赖vnode上的key做算法优化。但在写模版时,除了v-for渲染列表会手写key。其他情况并不会去手写key,如:


<div id="parent">
    <h1 id="child">1</h1>
    <h1 id="child">2</h1>
    <h1 id="child">3</h1>
</div>
···
更新时也会触发diff算法?
qinjialei24 commented 3 months ago

所有更新都会触发diff算法。 另外,Vue 不会自动为 VNodes 添加 key,你需要自己负责添加。如果省略 key,Vue 会尝试使用其他方式来识别节点,但这可能会导致性能问题,特别是在列表频繁更新的情况下。