第一:使用$set.vue
直接給student賦值操做,雖然能夠新增屬性,可是不會觸發視圖更新函數
mounted () { this.student.age = 24 }
緣由是:受 ES5 的限制,Vue.js 不能檢測到對象屬性的添加或刪除。由於 Vue.js 在初始化實例時將屬性轉爲 getter/setter,因此屬性必須在 data 對象上才能讓 Vue.js 轉換它,才能讓它是響應的。this
要處理這種狀況,咱們能夠使用$set()方法,既能夠新增屬性,又能夠觸發視圖更新。code
錯誤寫法:this.$set(key,value)(ps: 多是vue1.0的寫法)對象
mounted () { this.$set(this.student.age, 24) }
正確寫法:this.$set(this.data,」key」,value’)get
mounted () { this.$set(this.student,"age",
第二種:用ES6的對象.assign更新對象渲染
Object.assign方法用於對象的合併,將源對象( source )的全部可枚舉屬性,複製到目標對象( target )date
第三種:用強制刷新$forceUpdate()搜索
添加方法
this.$forceUpdate();
進行強制渲染,效果實現。搜索資料得出結果:由於數據層次太多,render函數沒有自動更新,需手動強制刷新。