vue修改頁面資料不渲染---this.$set()的使用方法
阿新 • • 發佈:2021-01-09
技術標籤:vue
前情提要:以下三種情況Vue 不能檢測陣列和物件的變化
- 物件中 property 的新增或移除:
testObj.a='引數' //testObj沒有引數a
- 使用索引直接設定一個數組項:
testArray[1]='陣列項'
- 修改陣列長度:
testArray.length = 4
此時就需用使用this.set()/this.$set()
來保證他們的響應性。
(vm.$set
是全域性Vue.set
方法的別名)
一. 用法
this.$set( target, key, value )
,其中:
target:要更改的資料來源(可以是物件或者陣列)
key:要更改的具體資料(物件屬性名或者陣列下標)
二. 具體實踐
data() {
return {
testArray: [],
testObj: {},
}
},
created() {
this.$set(this.testArray, 0, '1')
this.$set(this.testObj, 'Name', 'name')
console.log('陣列', this.testArray)
console.log('物件', this.testObj)
}
三. 效果:
參考連結:
4. https://cn.vuejs.org/v2/guide/reactivity.html#%E6%A3%80%E6%B5%8B%E5%8F%98%E5%8C%96%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9