首選查閱官方文檔 深入了解響應(yīng)式編程
vue 變化檢測原理使用 Object.defineProperty 把這些屬性全部轉(zhuǎn)為 getter/setter
Vue 不允許在已經(jīng)創(chuàng)建的實例上動態(tài)添加新的根級響應(yīng)式屬性 (root-level reactive property)
然而它可以使用 Vue.set(object, key, value) 方法將響應(yīng)屬性添加到嵌套的對象上:
this.$set(this.someObject,'b',2)
有時你想向已有對象上添加一些屬性域醇,例如使用 Object.assign() 或 _.extend() 方法來添加屬性。但是婚惫,添加到對象上的新屬性不會觸發(fā)更新京办。在這種情況下可以創(chuàng)建一個新的對象待侵,讓它包含原對象的屬性和新的屬性:
// 代替 `Object.assign(this.someObject, { a: 1, b: 2 })`
this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })
首先使用 vuex state 如果設(shè)置默認(rèn)值也可以檢測到的
但是一旦使用 未知 state就無法檢測到變更
- 解決思路 設(shè)置未知state為一個空對象陌选,你會發(fā)現(xiàn) TMD還是不能檢測到
- 突發(fā)奇想 在建立了對象后再設(shè)置一個默認(rèn)值
this.$store.commit('setState', [`${this.spm}Content`, {}])
this.$store.commit('setState2', [`${this.spm}Content`, 'isShow', false])
具體頁面
// 先設(shè)置data數(shù)據(jù)
getContent:this.$store.getters.getState(`${this.spm}Content`)
// 設(shè)置計算屬性
computed:{
content:function(){
let obj = Object.assign({}, this.getContent)
return obj
}
好了 你可以愉快的使用了
打個小廣告
自己根據(jù)原理寫的迷你的vue 用于整合到j(luò)q
https://www.npmjs.com/package/min-vue
沒事點(diǎn)個小星星什么的