寫點贊功能時,點贊後已經追加到對象裏了,可是視圖沒有更新。vue
查找了些資料:python
數據已經更新了可是視圖不更新的問題,有幾個緣由:數據庫
一、根屬性不存在,而想要直接給根屬性賦值致使的視圖不更新。此時初始化屬性的時候給根屬性初始化一個空值就能夠了。數組
二、只有經過如下幾個方法更新數組異步
push() pop() shift() unshift() splice() sort() reverse()
vue才能檢測到數組更新。若是想直接經過下標修改數組的話,就須要使用vm-set 方法來通知vue你更新了這個數組。this
語法爲:對象
vm.$set( target, key, value ) Vue.set(vm.obj,'k1','v1') this.$set(this.obj,'k1','v1') this.obj = Object.assign({}, this.obj) this.obj = Object.assign({}, this.obj,{'k1','v1'})
對象添加能夠使用:blog
this.$set(對象名,屬性,值)
-----------------------------------------------2019/3/22更新-----------------------------------------get
//這塊思路 由於得異步更新,點贊後單獨更新這一條
//vue數據更新後 同步更新視圖 對於對象來講要用Vue.set這種寫法
//先把用戶點讚的 moment_id存進對象,{51:true,60:true,...},
//判斷對象中的屬性,v-if="zan_obj[item.id]" 爲true就亮紅心,用過濾器使點贊數值+1
//下拉刷新時,清空此對象,此時使用數據庫中的點贊狀態數據
Vue.set(vm.zan_obj,mom_,true);同步