注:编写vue项目中的问题进行记录
1.检测数组变化
不能直接赋值, 可以用splice进行改变
let arr=[1,2,3]
arr[1]=4 //不能响应变化
arr.splice(1,1,4) //可以响应变化
Vue.set(arr,1,4) //可以响应变化
vm.$set(arr, 1,4) //可以响应变化(vm是vue实例)
arr.length=2 //不能响应变化
注:push()、pop()、shift()、unshift()、splice()、sort()、reverse()这些方法都可以检测到
2.Vue 不能检测对象属性的添加或删除
var vm = new Vue({
data: {
user: {
'name' : 'Tom',
}
}
})
// user.name 是响应式的
vm.user.age = 20
// user.age 不是响应式的
Vue.set(vm.user, ‘age’, 27) //是响应式的
vm.$set(vm.user, ‘age’, 27) //可以响应变化(vm是vue实例)