vue项目中使用拖拽排序实现无刷新组件更改排序的办法

项目中使用vuedraggable插件进行拖拽排序,拖拽后组件会重新创建,体验不佳。作者通过研究v-for原理,发现就地复用策略是解决问题的关键。只要v-for循环中的key保持唯一,组件就不会重新渲染,从而实现无刷新组件拖拽排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个项目中拖拽排序使用的插件是vuedraggable,由于拖拽之后排序变化,通过v-for循环出的组件会重新创建,体验很不好,找了很多方法都没能解决无刷新组件更改排序,直到想起来看下v-for的原理。

在vue中,通过v-for来渲染一个数组列表时,现在都需要传属性key,因为之前一直没太用到这相关的,所以key值我一直是用的index或者是随机字符串+index定义的,直到这次出的问题,才真正了解key的作用。

在这里插入图片描述

就地复用策略就是解决本问题的关键点,在v-for循环的列表顺序改变时,只要key还是那个唯一的,对应的组件就不会重新渲染一遍,自然也就实现了无刷新组件拖拽排序的功能。

果然在写代码的过程中,要多思考,多了解原理,才能更好的完成代码编写。

参考文章:了解一下v-for原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值