在公司做vue項(xiàng)目梦湘,數(shù)據(jù)改變視圖不更新瞎颗,用了$set方法也不好使,為此總結(jié)了一些解決這個(gè)問題的方法:
1.Vue.$set(target, key, value)践叠; 適用于對(duì)象或數(shù)組
2.oldObj = Object.assign({}, newObj); 適用于對(duì)象(注:oldObj必須是已經(jīng)聲明的對(duì)象)
3.push()言缤,pop(),shift()禁灼,unshift()管挟,splice(),sort()弄捕,reverse()可被vue檢測(cè)到; 適用于數(shù)組
4.Vue.nextTick(callback) (Vue 異步執(zhí)行 DOM 更新)
5.vue多層循環(huán)僻孝,動(dòng)態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染
可在動(dòng)態(tài)改變數(shù)據(jù)的方法导帝,第一行加上:this.$forceUpdate();
6.很可能是v-for循環(huán)時(shí)那個(gè)key沒有設(shè)置為唯一值,最好別設(shè)置為索引穿铆;(數(shù)據(jù)結(jié)構(gòu)層級(jí)嵌套比較深一定要注意您单,本人就踩過坑)
7.先賦值為null,然后Vue.nextTick(callback)重新賦值正確的數(shù)據(jù)(這個(gè)稍微有點(diǎn)暴力哈荞雏。虐秦。。),有時(shí)候上面幾種方法都不管用時(shí)可以試試