vue 用key拿对象value_如何正确理解vue中的key详解

本文详细探讨了Vue中key的作用,包括在v-for遍历中的优化和强制更新DOM的场景。使用key能加速虚拟DOM的渲染,通过改变key可触发组件的生命周期,强制替换元素或组件,解决响应式系统未监听到的数据变化问题。同时介绍了$forceUpdate方法作为强制更新DOM的另一种方式。文章深入解析了key的原理,并提供了应用场景和最佳实践。
摘要由CSDN通过智能技术生成

就目前所了解的情况,key的作用有以下这些。

v-for遍历时,用id,uuid之类作为key,唯一标识节点加速虚拟DOM渲染

响应式系统没有监听到的数据,用+new Date()生成的时间戳作为key,手动强制触发重新渲染

场景一大同小异司空见惯,场景二是下面这样的:

Hello Vue.js !

refresh(){

this.rerender = + new Date();

}

那么vue中key的相关知识点到底是怎样的呢?

官方API知识点

上面2个使用场景背后的原理是什么?

除key外,还有其它强制更新DOM的方法吗?

参考资料

官方API知识点

在Vue.js中,key是6个特殊属性key, ref, is, slot, slot-scope, scope其中之一。

key的值可以是number,也可以是string。

key主要作用于Vue的virtual DOM算法,在diff new nodes list和old nodes list时,作为识别VNode的一个线索。

如果不用key,Vue会用一种算法:最小化element的移动,并且会尝试尽最大程度在同适当的地方对相同类型的element,做patch或者reuse。

如果使用了key,Vue会根据keys的顺序记录element,曾经拥有了key的element如果不再出现的话,会被直接remove或者destory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值