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

vue中改變了vuex數(shù)據(jù)視圖不更新,也監(jiān)聽不到的原因及解決

 更新時間:2023年03月28日 09:22:48   作者:會點(diǎn)php的前端小渣渣  
這篇文章主要介紹了vue中改變了vuex數(shù)據(jù)視圖不更新,也監(jiān)聽不到的原因及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue改變了vuex數(shù)據(jù)視圖不更新,也監(jiān)聽不到

首先我這里就不說什么強(qiáng)制刷新api了,那東西沒用。

我也不說什么計(jì)算屬性里面要依賴data里面的變量變化了才計(jì)算

因?yàn)樯厦?個我都試過了

解決辦法是

使用 Object.assign({}, pageInfo.detail, obj)賦值即可正常解決

在vuex里面

? ? updateContent({
? ? ? ? commit,
? ? ? ? state
? ? }, {
? ? ? ? key,
? ? ? ? value
? ? }) {
? ? ? ? let pageInfo = state.pageInfo;
? ? ? ?
? ? ? ? ? ? //pageInfo.detail[key] = value ?一開始我這里直接賦值的不行
? ? ? ? ? ? let obj = {}
? ? ? ? ? ? obj[key] = value
? ? ? ? ? ? pageInfo.detail = Object.assign({}, pageInfo.detail, obj)
? ? }

pageInfo.detail[key] = value  這種寫法里面其實(shí)vue2里面是不會被監(jiān)聽到變化的 

1. 不能監(jiān)聽的情況

(1) 直接通過下標(biāo)賦值  arr[i] = value

(2) 直接修改數(shù)組長度 arr.length = newLen 

替代方法

Vue.set(arr, index, newvalue)
arr.splice(newLen)

vue響應(yīng)式數(shù)據(jù)已獲取視圖不更新問題

首先 => 我們要深刻理解 Vue響應(yīng)式的原理 通過get 和 set進(jìn)行獲取與設(shè)置 同時通知觀察者進(jìn)行新舊虛擬dom樹 diff算法就地更新 重新渲染組件

特別注意 => Vue官方文檔的注意事項(xiàng)

由于javaScript的限制 Vue不能檢測數(shù)組和對象的變化 因此你就要思考 為什么我的響應(yīng)式有問題

我們看一個實(shí)戰(zhàn)bug 同事托我解決的一個問題

watch 偵聽tree回調(diào)函數(shù) 過濾出來的數(shù)組 從而去觸發(fā)filterNode

但是watch正常 但是偏偏不觸發(fā)filterNode 一切正常 數(shù)據(jù)全有 變化也有 refdom節(jié)點(diǎn)也能打印出來 就是不觸發(fā)~ 唯一的可能性 樹是空的 所以導(dǎo)致不觸發(fā)回調(diào)過濾

但是有時候刷新頁面能觸發(fā) 有時候不能觸發(fā)  我懷疑是 Vue的熱更新和瀏覽器的緩存導(dǎo)致

因此我們可以想象為什么 樹是空的 我明明有數(shù)據(jù) 為什么dom上的節(jié)點(diǎn)為空

只有一種可能 數(shù)據(jù)更新 視圖沒有獲取到 那就證明Vue響應(yīng)式出錯了

所以我發(fā)現(xiàn)我同事在數(shù)據(jù)處理上有問題 他利用下標(biāo)去處理數(shù)組進(jìn)行循環(huán)賦值 因此讓Vue沒有劫持到

所以我換了種寫法 用的push 因?yàn)閜ush可以做到Vue對數(shù)據(jù)更新的檢測

對于這種問題 Vue官網(wǎng)提供的 Set方法也可以解決 不過這屬于亡羊補(bǔ)牢 根本問題并沒有解決。

對于解決bug => 困難不在于如何去解決 而是難在去尋找問題 排查問題所在 排查問題的能力是一位開發(fā)者至關(guān)重要的手段。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決vuex在頁面刷新后數(shù)據(jù)被清除的問題

    如何解決vuex在頁面刷新后數(shù)據(jù)被清除的問題

    這篇文章主要介紹了如何解決vuex在頁面刷新后數(shù)據(jù)被清除的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue3實(shí)現(xiàn)動態(tài)高度的虛擬滾動列表的示例代碼

    Vue3實(shí)現(xiàn)動態(tài)高度的虛擬滾動列表的示例代碼

    虛擬滾動列表是一種優(yōu)化長列表渲染性能的技術(shù),通過只渲染可視區(qū)域內(nèi)的列表項(xiàng),減少DOM的渲染數(shù)量,本文就來介紹一下Vue3實(shí)現(xiàn)動態(tài)高度的虛擬滾動列表的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • vue以組件或者插件的形式實(shí)現(xiàn)throttle或者debounce

    vue以組件或者插件的形式實(shí)現(xiàn)throttle或者debounce

    這篇文章主要介紹了vue以組件或者插件的形式實(shí)現(xiàn)throttle或者debounce,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Vue在 Nuxt.js 中重定向 404 頁面的方法

    Vue在 Nuxt.js 中重定向 404 頁面的方法

    這篇文章主要介紹了Vue在 Nuxt.js 中重定向 404 頁面的方法,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • 使用vue寫一個翻頁的時間插件實(shí)例代碼

    使用vue寫一個翻頁的時間插件實(shí)例代碼

    最近在做自己項(xiàng)目中遇到一個非常簡單的功能,跟大家分享下,這篇文章主要給大家介紹了關(guān)于使用vue寫一個翻頁的時間插件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Vue computed計(jì)算屬性總結(jié)記錄

    Vue computed計(jì)算屬性總結(jié)記錄

    在vue中,有時候你需要對data中的數(shù)據(jù)進(jìn)行處理,或者對抓取的數(shù)據(jù)進(jìn)行處理之后再掛載呈現(xiàn)到標(biāo)簽中,這時候你就需要計(jì)算屬性了,當(dāng)然看到這里你可能還是不了解那下面我舉幾個實(shí)例并附代碼解釋
    2023-02-02
  • vue.js簡單配置axios的方法詳解

    vue.js簡單配置axios的方法詳解

    axios是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端,下面這篇文章主要給大家介紹了關(guān)于vue.js簡單配置axios的相關(guān)資料,需要的朋友們可以參考借鑒,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Vue3封裝登錄功能的兩種實(shí)現(xiàn)

    Vue3封裝登錄功能的兩種實(shí)現(xiàn)

    本文主要介紹了Vue3封裝登錄功能的兩種實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue獲取參數(shù)的幾種方式總結(jié)

    vue獲取參數(shù)的幾種方式總結(jié)

    這篇文章主要介紹了vue獲取參數(shù)的幾種方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實(shí)現(xiàn)購物車功能(親測可用)

    vue實(shí)現(xiàn)購物車功能(親測可用)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

横山县| 华坪县| 闽清县| 荆门市| 建阳市| 海晏县| 菏泽市| 汝南县| 鄂尔多斯市| 方山县| 华池县| 湖北省| 湖口县| 旬阳县| 永新县| 彭山县| 藁城市| 周宁县| 稻城县| 阿鲁科尔沁旗| 襄垣县| 巨野县| 独山县| 林西县| 平顶山市| 洛浦县| 阿荣旗| 阿拉善左旗| 阳江市| 佛教| 汾阳市| 泰州市| 平潭县| 英山县| 尉氏县| 陇南市| 清水县| 永仁县| 宾阳县| 邹平县| 宁陕县|