v-for循环组件问题?
- v-for循环组件,组件key都是同一个固定值,组件还会被重新创建吗
- v-for循环组件,内部组件每次的生命周期都是从beforeCreated开始的吗
回答:
- 使用
v-for
循环渲染组件,当数据更新导致重新渲染时,Vue将会尽可能地复用这些相同的组件实例,而不是重新创建它们。
特殊attribute key
key 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。
有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。
- 使用
v-for
循环渲染组件,如果一个组件实例是第一次创建(例如,列表项第一次被添加到v-for
循环中),那么Vue会按照正常的生命周期顺序创建新的组件实例(beforeCreated
->created
->beforeMount
->mounted
);如果一个组件实例在之前已经被创建过,并且现在被复用了(例如,v-for
循环中的组件列表中的项发生了变化),那么Vue会重用该组件实例,则仅会经过更新相关的生命周期(beforeUpdate
->updated
)。
生命周期图示
以上是 v-for循环组件问题? 的全部内容, 来源链接: utcz.com/p/934704.html