" />

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

Vue多層數(shù)據(jù)結(jié)構(gòu)響應(yīng)式失效,視圖更新失敗問題

 更新時間:2024年02月29日 09:27:42   作者:布依前端  
這篇文章主要介紹了Vue多層數(shù)據(jù)結(jié)構(gòu)響應(yīng)式失效,視圖更新失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

在表單設(shè)計和流程設(shè)計時,碰到多層數(shù)據(jù)響應(yīng)式失效問題,當時也是一臉懵,找不到錯在哪里,運行代碼不報錯,就是不能響應(yīng)式更新視圖了。

特此記錄一下填坑過程。

1、數(shù)據(jù)初始化結(jié)構(gòu)被破壞

表單配置需要config屬性,初始化時對象里沒有,導(dǎo)致vue響應(yīng)式失效,因為在頁面完成渲染之后,vue就已經(jīng)完成了響應(yīng)式綁定,對于監(jiān)聽且沒有屬性的字段將會失去數(shù)據(jù)的響應(yīng)式,從而無法實時更新視圖。

先看看這個對象,是修復(fù)之前的結(jié)構(gòu)。

formDesign: {
	process:{},
	list: []
}

修復(fù)后的數(shù)據(jù)結(jié)構(gòu),每一個需要響應(yīng)式的屬性,初始化頁面時都需要正確的結(jié)構(gòu)。

否則將失去響應(yīng)式的后果。

formDesign: {
	process:{},
	list: [],
	config: {}
}

2、js-delete刪除未觸發(fā)數(shù)據(jù)更新

在調(diào)用js刪除vue的data的數(shù)據(jù)后,既是傳入組件的data綁定sync屬性和watch監(jiān)聽都將變成徒勞的,因為js的delete更新不是鏈式響應(yīng)式的,不會觸發(fā)vue的響應(yīng)式數(shù)據(jù)驅(qū)動更新視圖。

當然這里針對是多層次數(shù)據(jù)結(jié)構(gòu),尤其是在流程設(shè)計,遞歸展示視圖和操作數(shù)據(jù)時最為常見。

解決辦法

使用vue的Vue.delete( target, propertyName/index )

官方解釋

  • 刪除對象的 property。
  • 如果對象是響應(yīng)式的,確保刪除能觸發(fā)更新視圖。
  • 這個方法主要用于避開 Vue 不能檢測到 property 被刪除的限制,但是你應(yīng)該很少會使用它。

官方解釋—深層響應(yīng)性

在 Vue 中,狀態(tài)都是默認深層響應(yīng)式的。

這意味著即使在更改深層次的對象或數(shù)組,你的改動也能被檢測到。

你也可以直接創(chuàng)建一個淺層響應(yīng)式對象。

它們僅在頂層具有響應(yīng)性,一般僅在某些特殊場景中需要。

export default {
  data() {
    return {
      obj: {
        nested: { count: 0 },
        arr: ['foo', 'bar']
      }
    }
  },
  methods: {
    mutateDeeply() {
      // 以下都會按照期望工作
      this.obj.nested.count++
      this.obj.arr.push('baz')
    }
  }
}

總結(jié)

每一個需要響應(yīng)式的屬性,初始化頁面時都需要正確的data結(jié)構(gòu),不管數(shù)據(jù)結(jié)構(gòu)是否復(fù)雜,都應(yīng)該保持Vue響應(yīng)式的數(shù)據(jù)規(guī)范,避免踩坑,否則將失去響應(yīng)式的后果。

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

相關(guān)文章

  • Vue中this.$router.push參數(shù)獲取方法

    Vue中this.$router.push參數(shù)獲取方法

    下面小編就為大家分享一篇Vue中this.$router.push參數(shù)獲取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 利用Vue3和element-plus實現(xiàn)圖片上傳組件

    利用Vue3和element-plus實現(xiàn)圖片上傳組件

    element-plus提供了uploader組件,但是不好定制化。所以本文將利用Vue3和element-plus實現(xiàn)一個圖片上傳的組件,感興趣的可以了解一下
    2022-03-03
  • Vue?CLI項目遷移eslint報錯解決辦法及最佳實踐

    Vue?CLI項目遷移eslint報錯解決辦法及最佳實踐

    ESLint是一個ECMAScript/JavaScript語法規(guī)則和代碼風(fēng)格的檢查工具,它的目標是保證代碼的一致性和避免錯誤,這篇文章主要介紹了Vue?CLI項目遷移eslint報錯解決辦法及最佳實踐的相關(guān)資料,需要的朋友可以參考下
    2025-09-09
  • Vue中關(guān)閉彈窗組件時銷毀并隱藏操作

    Vue中關(guān)閉彈窗組件時銷毀并隱藏操作

    這篇文章主要介紹了Vue中關(guān)閉彈窗組件時銷毀并隱藏操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue3基于husky的代碼檢查工作流

    Vue3基于husky的代碼檢查工作流

    husky是一個git hooks工具(git的鉤子工具,可以在特定時機執(zhí)行特定的命令),這篇文章主要介紹了Vue3-基于husky的代碼檢查工作流,需要的朋友可以參考下
    2023-11-11
  • 詳解VueRouter 路由

    詳解VueRouter 路由

    本文詳細介紹了VueRouter 路由的概念、規(guī)則、基礎(chǔ)等相關(guān)內(nèi)容,文中運用大量的圖片進行講解,感興趣的小伙伴可以看一看這篇文章
    2021-08-08
  • 自定義Vue組件打包、發(fā)布到npm及使用教程

    自定義Vue組件打包、發(fā)布到npm及使用教程

    這篇文章主要介紹了自定義Vue組件打包、發(fā)布到npm及使用教程 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Vue中Axios配置不同的baseURL,請求不同的域名接口方式

    Vue中Axios配置不同的baseURL,請求不同的域名接口方式

    這篇文章主要介紹了Vue中Axios配置不同的baseURL,請求不同的域名接口方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • ElementUI組件Dialog彈窗再次打開表單仍顯示上次數(shù)據(jù)的問題

    ElementUI組件Dialog彈窗再次打開表單仍顯示上次數(shù)據(jù)的問題

    這篇文章主要介紹了ElementUI組件Dialog彈窗再次打開表單仍顯示上次數(shù)據(jù)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue3源碼分析reactivity實現(xiàn)原理

    vue3源碼分析reactivity實現(xiàn)原理

    這篇文章主要為大家介紹了vue3源碼分析reactivity實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論

台湾省| 五大连池市| 镇安县| 峨山| 运城市| 桃源县| 通海县| 罗城| 湖州市| 桑植县| 永新县| 东乌珠穆沁旗| 平潭县| 吉水县| 承德县| 航空| 苗栗市| 扎囊县| 周至县| 玉屏| 株洲市| 方城县| 青田县| 元阳县| 雅安市| 铁力市| 德钦县| 兴业县| 全南县| 蓬溪县| 河间市| 乐清市| 文昌市| 礼泉县| 获嘉县| 延寿县| 延安市| 开封市| 澜沧| 河津市| 长丰县|