Vue 属性更新检测
数组更新检测
push、pop、shift、unshift、splice、sort、reverse
filter()、concat()、slice() 返回新数组替换旧数据
js
arr[i] = xx ---> Vue.set(数组,下标,新值) vm.$set(数组,下标,新值) vm.数组.splice(下标,1,新值)
arr.length = n ---> vm.数组.splice(新长度)对象添加属性
js
// 全局set
Vue.set(改变的对象,添加的键,值)
// 实例set
实例.$set(改变的对象,添加的键,值)
// 多个属性
改变的对象 = Object.assign({},改变的对象,{对象1},{对象2}...)
// 后面的对象合并到第一个参数,并返回第一个参数的引用,再复制给改变的对象
// 第一个参数需要是新对象,如果是要改变的对象引用不会变对象删除属性
js
Vue.delete(对象,'属性名')
实例.$delete(对象,'属性名')this.$nextTick
数据被修改且渲染之后再调用next回调,并返回promise对象
this.$nextTick这个方法作用是当数据被修改后使用这个方法会回调获取更新后的dom再渲染出来
js
methods:{
testClick() {
this.content = '改变了的值'
this.$nextTick(() => {
// dom元素更新后执行,因此这里能正确打印更改之后的值
console.log(that.$refs.tar.innerText) // 改变了的值
})
}
}