delete 和 Vue.delete 删除数组的区别
delete
delete是js中原生的操作符,当用 delete 删除数组中的元素时,它 只是被删除的元素变成了 empty/undefined 其他的元素的键值还是不变。即不会改变数组的长度。被删除的元素位置会被保留为一个空洞,即数组的索引位置仍然存在,但对应的元素值为 undefined。
let array = [1, 2, 3, 4];
delete array[2]; // 展示的结果:array = [1, 2, undefined, 4]
Vue.delete
Vue.delete是 Vue框架提供的一个全局方法,用于删除 Vue 响应式对象【数组和对象】中的属性或数组元素。
Vue.delete 直接删除了数组 改变了数组的键值;并且会触发Vue 的响应式更新机制,确保删除操作能够被 Vue 监测到并更新视图。
import Vue from 'vue';
let array = [1, 2, 3, 4];
Vue.delete(array, 2); // 展示结果:array = [1, 2, 4]
注:当需要删除 Vue 响应式数组中的元素时,应该优先使用 Vue.delete 方法。