vue將對象新增的屬性添加到檢測序列的方法
vue中將對象中新增的屬性增加到檢測序列中
deepCopy(o1, o2) { // 將o2的內(nèi)容拷貝給data中的o1
var key, i
if (o2 instanceof Array) {
for (i = 0; i < o2.length; i++) {
if (o2[i] instanceof Array) {
this.$set(o1, i, [])
this.deepCopy(o1[i], o2[i])
}
else if (o2[i] instanceof Object) {
this.$set(o1, i, {})
this.deepCopy(o1[i], o2[i])
}
else {
this.$set(o1, i, o2[i])
}
}
}
else if (o2 instanceof Object) {
for (key in o2) {
if (o2[key] instanceof Array) {
this.$set(o1, key, [])
this.deepCopy(o1[key], o2[key])
}
else if (o2[key] instanceof Object) {
this.$set(o1, key, {})
this.deepCopy(o1[key], o2[key])
}
else {
this.$set(o1, key, o2[key])
}
}
}
else {
o1 = o2
}
}
由于 Vue 不允許動態(tài)添加根級響應(yīng)式屬性,所以你必須在初始化實例前聲明根級響應(yīng)式屬性,哪怕只是一個空值
如果一個屬性沒有事先聲明,后面再增加,他不能檢測到變化,對于一些固定的結(jié)構(gòu),是可以檢測到變化的。比如我知道一個obj里面必然有key1、key2屬性,我可以事先初始化。如果這些東西是動態(tài)的,我沒法事先聲明。后面再增加,vue沒法檢測到變化了。
這時將你已經(jīng)在data中聲明的變量和你要賦給這個變量的值作為參數(shù)傳進該函數(shù)就行了
以上這篇vue將對象新增的屬性添加到檢測序列的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue封裝localStorage設(shè)置過期時間的示例詳解
這篇文章主要介紹了Vue封裝localStorage設(shè)置過期時間的相關(guān)資料,在這個示例中,我們在MyComponent.vue組件的setup函數(shù)中導(dǎo)入了setItemWithExpiry和getItemWithExpiry函數(shù),并在函數(shù)內(nèi)部使用它們來設(shè)置和獲取帶有過期時間的localStorage數(shù)據(jù),需要的朋友可以參考下2024-06-06
詳解vue-cli腳手架build目錄中的dev-server.js配置文件
這篇文章主要介紹了詳解vue-cli腳手架build目錄中的dev-server.js配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
vue?調(diào)用瀏覽器攝像頭實現(xiàn)及原理解析
這篇文章主要為大家介紹了vue調(diào)用瀏覽器攝像頭實現(xiàn)及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06

