深結構數據
首先我們知道在vue中,數據的綁定都不用我們操心,例如在data中有一個msg的變量,你修改它,那么在頁面上,msg的內容就會自動發生變化。但是如果對於一個復雜的對象,例如一個對象數組,你直接去給數組上某一個元素增加屬性,或者直接把數組的length變成0,vue就無法知道發生了改變。
1.相信大家也遇到過,實際上是賦值的 界面上並不渲染
change: function(index) {//增加性別屬性 this.list[index].sex = '男'; }, clear: function() {//清空數組 this.list.length = 0; }
2. this.$set可解決這個問題 vue的規范 文檔里面都有提到過
change: function(index) {//增加性別屬性 this.$set(this.list[index],'sex','男') }, clear: function() {//清空數組 this.list=[]; }
3.這種是我們要說的 this.$forceUpdate() 有沒有感覺更方便一些了
change: function(index) { this.list[index].sex = '男'; this.$forceUpdate(); }, clear: function() { this.list.length = 0; this.$forceUpdate(); }