vue3中的数组如果是reactive直接定义的话,那么通过直接赋值的方式改变数组,界面是不会得到响应,界面响应式是无效的。
let arr = reactive([1,2,3,4,5])
arr = []; //这种方式无效,界面不会响应
解决方法有下面两种
1,是直接用ref([1,2,3])定义,通过arr.value的方式,这种可以直接赋值是有效的。
let arr = ref([1,2,3,4,5])
arr.value = [6,7,8,9,10]
2,另外一种是通过reactive,但不直接创建一个数组,而是创建一个对象,对象里面在创建一个数组,data.arr=[] 这种方式也是可以的,这种方式相当于是在改对象里面的某个属性,因此也能做到直接赋值
let data = reactive({
arr:[1,2,3,4,5]
})