最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue數(shù)據(jù)更新視圖不更新的幾種解決方案小結

 更新時間:2022年08月02日 10:33:05   作者:大雄Obear  
這篇文章主要介紹了Vue數(shù)據(jù)更新視圖不更新的幾種解決方案小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Vue數(shù)據(jù)更新視圖不更新的幾種解決

知識拓展

在一個組件實例中,只有在data里初始化的數(shù)據(jù)才是響應的,Vue不能檢測到對象屬性的添加或刪除,沒有在data里聲明的屬性不是響應的。

Vue不允許在已經創(chuàng)建的實例上動態(tài)添加根級響應式屬性,但是可以使用$set方法將相應屬性添加到嵌套的對象上。

數(shù)組數(shù)據(jù)變動,使用某些方法操作數(shù)組,變動數(shù)據(jù)時,有些方法無法被vue監(jiān)測

push(),pop(),splice(),sort(),reverse()可被vue檢測到 filter(), concat(), slice()。這些不會改變原始數(shù)組,但總是返回一個新數(shù)組。當使用非變異方法時,可以用新數(shù)組替換舊數(shù)組。

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

1、當你利用索引直接設置一個項時,vm.items[indexOfItem] = newValue

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

對象屬性的添加或刪除

由于 Vue 會在初始化實例時對屬性執(zhí)行 getter/setter 轉化過程,所以屬性必須在 data 對象上存在才能讓 Vue 轉換它,這樣才能讓它是響應的。

解決辦法:

使用 Vue.set(object, key, value) 方法將響應屬性添加到嵌套的對象上

Vue.set(vm.someObject, 'b', 2) 或者 this.$set(this.someObject,'b',2) (這也是全局 Vue.set 方法的別名)

異步更新隊列

在最新的項目中遇到了這種情況,數(shù)據(jù)第一次獲取到了,也渲染了,但是第二次之后數(shù)據(jù)只有在再一次渲染頁面的時候更新,并不能實時更新。

網(wǎng)上查了資料才知道,Vue 異步執(zhí)行 DOM 更新。只要觀察到數(shù)據(jù)變化,Vue 將開啟一個隊列,并緩沖在同一事件循環(huán)中發(fā)生的所有數(shù)據(jù)改變。如果同一個 watcher 被多次觸發(fā),只會被推入到隊列中一次。

解決辦法:

可在數(shù)據(jù)變化之后立即使用 Vue.nextTick(callback)。這樣回調函數(shù)在 DOM 更新完成后就會調用。例如:

因為 $nextTick()返回一個 Promise 對象,所以可以使用新的 ES2016 async/await語法完成相同的事情:

Object.assign方法

object.assign方法用于將所有可枚舉屬性的值從一個或多個源對象復制到目標對象,并返回目標對象。

vm.object = Object.assign( { } , vm.object , {a:' 1 ', b:' 2 ' })  

注:object必須是已經聲明的對象

關于Object.assign方法更多內容,請訪問《Object.assign()

vue多層循環(huán)

動態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染

可在動態(tài)改變數(shù)據(jù)的方法,第一行加上

this.$forceUpdate();

Vue更改了數(shù)據(jù)但是視圖卻沒有更新

1.Vue不能檢測到對象屬性的添加或刪除,沒有在對象里聲明的屬性不是響應的。

2.用在v-for里面數(shù)據(jù)層次太多,render函數(shù)沒有自動更新,需手動強制刷新

vm.$forceUpdate()

迫使 Vue 實例重新渲染。注意它僅僅影響實例本身和插入插槽內容的子組件,而不是所有子組件。

https://cn.vuejs.org/v2/api/#vm-forceUpdate

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在Vue 中使用Typescript的示例代碼

    在Vue 中使用Typescript的示例代碼

    這篇文章主要介紹了在Vue 中使用Typescript的示例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • vue兩次賦值頁面獲取不到的解決

    vue兩次賦值頁面獲取不到的解決

    這篇文章主要介紹了vue兩次賦值頁面獲取不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue中的計算屬性和axios基本使用回顧

    Vue中的計算屬性和axios基本使用回顧

    這篇文章主要介紹了Vue中的計算屬性和axios基本使用回顧,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 淺析Vue 和微信小程序的區(qū)別、比較

    淺析Vue 和微信小程序的區(qū)別、比較

    寫了vue項目和小程序,發(fā)現(xiàn)二者有許多相同之處,在此想總結一下二者的共同點和區(qū)別,需要的朋友可以參考下
    2018-08-08
  • vue實現(xiàn)路由懶加載及組件懶加載的方式

    vue實現(xiàn)路由懶加載及組件懶加載的方式

    懶加載簡單來說就是延遲加載或按需加載,即在需要的時候的時候進行加載。這篇文章主要介紹了vue路由懶加載及組件懶加載 ,需要的朋友可以參考下
    2019-06-06
  • vue3中ref和reactive的用法和解析(推薦)

    vue3中ref和reactive的用法和解析(推薦)

    這篇文章主要介紹了vue3的ref和reactive的用法和解析,開始部分講解了ref,reactive的使用實例,如何進行類型的標注,配合ts這么使用,接著講解了兩者的區(qū)別,分別需要注意的點,還有ref的頂層自動解包,需要的朋友可以參考下
    2023-03-03
  • Vue使用Element-UI實現(xiàn)分頁效果全過程

    Vue使用Element-UI實現(xiàn)分頁效果全過程

    element-ui官網(wǎng)上有分頁實現(xiàn)的功能,簡單方便又好用,也有很多分頁的樣式,你可以根據(jù)需要去選擇自己想要的樣式,下面這篇文章主要給大家介紹了關于Vue使用Element-UI實現(xiàn)分頁效果的相關資料,需要的朋友可以參考下
    2023-04-04
  • Vue組件上使用v-model之單選框

    Vue組件上使用v-model之單選框

    這篇文章主要介紹了Vue組件上使用v-model之單選框,代碼分為子組件內容和父組件內容,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • element?ui時間日期選擇器el-date-picker報錯Prop?being?mutated:"placement"解決方式

    element?ui時間日期選擇器el-date-picker報錯Prop?being?mutated:"

    在日常開發(fā)中,我們會遇到一些情況,限制日期的范圍的選擇,下面這篇文章主要給大家介紹了關于element?ui時間日期選擇器el-date-picker報錯Prop?being?mutated:?"placement"的解決方式,需要的朋友可以參考下
    2022-08-08
  • vue axios攔截器常用之重復請求取消

    vue axios攔截器常用之重復請求取消

    我們大家在開發(fā)中,經常會遇到接口重復請求導致的各種問題,下面這篇文章主要給大家介紹了關于axios攔截器之重復請求取消的相關資料,需要的朋友可以參考下
    2021-09-09

最新評論

西畴县| 灵川县| 沾化县| 平乡县| 曲周县| 五大连池市| 沛县| 东兰县| 喀喇沁旗| 大名县| 长乐市| 西乌| 都江堰市| 仁寿县| 交城县| 万荣县| 西和县| 丹东市| 界首市| 康平县| 文水县| 长治市| 西和县| 岱山县| 长乐市| 视频| 喀什市| 南华县| 祁阳县| 九江市| 定结县| 晋江市| 彰化县| 平舆县| 通海县| 分宜县| 会泽县| 通榆县| 贞丰县| 丰城市| 盐津县|