一个项目中拖拽排序使用的插件是vuedraggable,由于拖拽之后排序变化,通过v-for循环出的组件会重新创建,体验很不好,找了很多方法都没能解决无刷新组件更改排序,直到想起来看下v-for的原理。
在vue中,通过v-for来渲染一个数组列表时,现在都需要传属性key,因为之前一直没太用到这相关的,所以key值我一直是用的index或者是随机字符串+index定义的,直到这次出的问题,才真正了解key的作用。
就地复用策略就是解决本问题的关键点,在v-for循环的列表顺序改变时,只要key还是那个唯一的,对应的组件就不会重新渲染一遍,自然也就实现了无刷新组件拖拽排序的功能。
果然在写代码的过程中,要多思考,多了解原理,才能更好的完成代码编写。
参考文章:了解一下v-for原理