Vue v-for中为何不用索引index作key?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1005个文字,预计阅读时间需要5分钟。
结论:更新DOM时会出现性能问题,可能会产生一些状态bug。React中的key也是这样,如果已经理解了为什么需要使用key,可以通过目录直接跳到下一节。为什么要使用key?Vue和React都实现了一套机制。
结论:
- 更新DOM的时候会出现性能问题
- 会发生一些状态bug
- React 中的 key 也是如此
- 如果已经了解 为什么要用key,可以通过目录直接跳到下一节。
为什么要用key?
Vue 和 React 都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面。而隐藏在背后的原理便是其高效的Diff算法。
Vue 和 React 的虚拟DOM的Diff算法大致相同,其核心是基于两个简单的假设:
- 两个相同的组件产生类似的DOM结构,不同的组件产生不同的DOM结构。
- 同一层级的一组节点,他们可以通过唯一的id进行区分。
基于以上这两点假设,使得虚拟DOM的Diff算法的复杂度从O(n^3)降到了O(n)。
本文共计1005个文字,预计阅读时间需要5分钟。
结论:更新DOM时会出现性能问题,可能会产生一些状态bug。React中的key也是这样,如果已经理解了为什么需要使用key,可以通过目录直接跳到下一节。为什么要使用key?Vue和React都实现了一套机制。
结论:
- 更新DOM的时候会出现性能问题
- 会发生一些状态bug
- React 中的 key 也是如此
- 如果已经了解 为什么要用key,可以通过目录直接跳到下一节。
为什么要用key?
Vue 和 React 都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面。而隐藏在背后的原理便是其高效的Diff算法。
Vue 和 React 的虚拟DOM的Diff算法大致相同,其核心是基于两个简单的假设:
- 两个相同的组件产生类似的DOM结构,不同的组件产生不同的DOM结构。
- 同一层级的一组节点,他们可以通过唯一的id进行区分。
基于以上这两点假设,使得虚拟DOM的Diff算法的复杂度从O(n^3)降到了O(n)。

