溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue對象和數(shù)據(jù)怎么強制更新

發(fā)布時間:2022-04-02 15:43:17 來源:億速云 閱讀:418 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“Vue對象和數(shù)據(jù)怎么強制更新”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Vue對象和數(shù)據(jù)怎么強制更新”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

對象和數(shù)據(jù)的強制更新

數(shù)組更新

以下支持自動更新

  • push() //向后添加

  • pop() //刪除最后一個

  • shift() //刪除第一個

  • unshift() //向第一個添加元素

  • splice() //向指定位置添加/刪除元素

  • sort() //用原地算法對數(shù)組的元素進行排序

  • reverse() //將數(shù)組中元素的位置顛倒

注意,這種形式修改數(shù)據(jù) this.arr[1] = ‘x’ // 不是響應(yīng)性的,這種情況,可以采用splice方法修改數(shù)據(jù)即可實現(xiàn)更新

強制更新

this.$set(數(shù)組,下標,修改后的值)

eg:this.$set(this.dataArr,1,{})

對象更新

Vue 不能檢測對象屬性的添加或刪除:

強制更新

this.$set(this.obj, ‘a(chǎn)ge', 27)

參考鏈接 

更新數(shù)據(jù)并強制更新視圖

在開發(fā)過程中,有時發(fā)現(xiàn)當數(shù)據(jù)變動后,視圖并未更新。那么下面是一些常見示例的和解決辦法

對象類型

當對象為引用類型,vue不一定能監(jiān)控到 所以當我們新建一個對象并賦值給oldObj字段的話,直接改變了它的指向地址=====》對象和數(shù)組都能用的方法:

this.$set(this,'oldArray',newArray);
this.$set(this,'oldObj',newObj);
this.$set(this.some.name,‘b',2)

數(shù)組類型

這些不會改變原始數(shù)組,但總是返回一個新數(shù)組。當使用非變異方法時,可以用新數(shù)組替換舊數(shù)組。

push(),pop(),shift(),unshift(),splice(),sort(),reverse()可被vue檢測到 ,filter(), concat(), slice() 。

vue不能檢測以下變動的數(shù)組:

① 當你利用索引直接設(shè)置一個項時,vm.items[indexOfItem] = newValue

② 當你修改數(shù)組的長度時,例如: vm.items.length = newLength

異步類型

可在數(shù)據(jù)變化之后立即使用 

Vue.nextTick(callback)

這樣回調(diào)函數(shù)在 DOM 更新完成后就會調(diào)用。

強制更新

this.$forceUpdate(),強制視圖更新 

vue多層循環(huán),動態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染。

比如v-for里面數(shù)據(jù)層次太多, 修改過數(shù)據(jù)變了,頁面沒有重新渲染,需手動強制刷新。

讀到這里,這篇“Vue對象和數(shù)據(jù)怎么強制更新”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI