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

vue父組件值變化但子組件不刷新的三種解決方案

 更新時間:2024年03月29日 09:45:02   作者:飛  
父組件傳遞給子組件的數據,如果是一個復雜對象(例如一個數組或對象),那么子組件只會監(jiān)聽對象的引用而不是對象的內容,這意味著當對象的內容發(fā)生變化時,子組件不會更新,本文給大家介紹了vue子組件不刷新的三種解決方案,需要的朋友可以參考下

父組件傳遞給子組件的數據,如果是一個復雜對象(例如一個數組或對象),那么子組件只會監(jiān)聽對象的引用而不是對象的內容。這意味著當對象的內容發(fā)生變化時,子組件不會更新。

解決:

1、子組件使用 watch 監(jiān)聽

在子組件使用 watch 監(jiān)聽 props傳過來的值,如果發(fā)現改變,調用forceUpdate刷新視圖。

this.$forceUpdate()

2、父組件聲明布爾變量

父組件中聲明一個布爾變量,數據發(fā)生變化后,切換一下變量狀態(tài),可刷新子組件視圖。

3、調用splice方法

數據發(fā)生變化后,在下面調用一下splice方法修改原數組長度(索引、截取長度都為0),數組不變,但視圖可成功渲染。

推薦使用這種方案

this.list.splice(0, 0)

4.使用this.$set

一、對象 使用this.$set(),修改和新增

定義數據對象:
obj: { name: "小明", age: 18, },        
 
  基本語法:
      this.$set(需要改變的對象,"需要改變的對象屬性","新值")

1、對象修改

this.$set(this.obj, "name", "小劉");

控制臺輸出:obj: { name: "小劉", age: 18, },

2.對象新增

this.$set(this.obj, "hobby", "study");

控制臺輸出:obj: { name: "小明", age: 18, hobby: "study"},

3.對象新增未知屬性(這里的item是傳遞的參數,不帶引號,"reading"是參數值)

二、數組 使用this.$set(),修改和新增

定義數組包對象:
arr: [                                           
  { name: "小王", age: 18 },
  { name: "小張", age: 20 },
],
 
  定義普通數組:       
twoArr: [11, 22, 33, ],                          
 
  基本語法:
this.$set(需要修改的數組,需要修改的數組下標,{ "要修改的數組對象,一個/多個" })

1.數組修改

修改數組對象:

this.$set(this.arr, 1, { name: "小王", age: 19 });

控制臺輸出:arr: [ { name: "小王", age: 18 },{ name: "小王", age: 19 }, ],

修改普通數組:

this.$set(this.twoArr, 0, 99);

控制臺輸出:twoArr: [99, 22, 33, ],

2.數組新增

首先需要獲取新增的數組長度:

let reslg = this.arr.length;  
 
this.$set(this.arr, reslg,{ name: "小紫", age: 18 },);
 
控制臺輸出:
arr: [ 
        { name: "小王", age: 18 },
        { name: "小張", age: 20 },
        { name: "小紫", age: 18 },
     ],

三、同理,執(zhí)行刪除操作時,對象或數組不更新時可以使用this.$delete

this.$delete 也是一個實例方法,用于從響應式對象中刪除屬性,并確保該操作也是響應式的。

使用this.$delete 可以解決Vue響應式系統(tǒng)的另一個限制,即無法檢測到通過索引直接刪除數組元素的變化。通過this.$delete 方法,可以顯式地告訴Vue,某個屬性已經被刪除,從而觸發(fā)視圖的更新。

基本語法:
 
this.$delete(this.obj, "name")

以上就是vue父組件值變化但子組件不刷新的三種解決方案的詳細內容,更多關于vue子組件不刷新的資料請關注腳本之家其它相關文章!

相關文章

  • vue移動端項目vant組件庫之tag詳解

    vue移動端項目vant組件庫之tag詳解

    這篇文章主要介紹了vue移動端項目vant組件庫之tag詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue中的性能優(yōu)化方案

    Vue中的性能優(yōu)化方案

    本文主要介紹了Vue中的性能優(yōu)化方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Vue設置頁面全屏實例代碼

    Vue設置頁面全屏實例代碼

    文章介紹了如何在Vue中設置頁面全屏,包括下載插件、全屏、退出全屏、全屏切換等操作,同時,還分享了在若依框架中實現主頁面內容全屏的方法,包括配置全局變量和在布局文件中進行設置
    2025-02-02
  • vue?+?element-plus自定義表單驗證(修改密碼業(yè)務)的示例

    vue?+?element-plus自定義表單驗證(修改密碼業(yè)務)的示例

    這篇文章主要介紹了vue?+?element-plus自定義表單驗證(修改密碼業(yè)務),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-04-04
  • Vue2路由動畫效果的實現代碼

    Vue2路由動畫效果的實現代碼

    本篇文章主要介紹了Vue2路由動畫效果的實現代碼,可以根據不同的路徑去改變動畫的效果,有興趣的可以了解一下
    2017-07-07
  • vue 中directive功能的簡單實現

    vue 中directive功能的簡單實現

    本篇介紹directive的簡單實現,主要學習其實現的思路及代碼的設計,需要的朋友參考下吧
    2018-01-01
  • vuex中mapState思想應用

    vuex中mapState思想應用

    這篇文章主要分享vuex中mapState思想及應用,在需求開發(fā)過程中,有的接口返回的結果中有很多字段需要展示到頁面上。通常可以將這些字段在.vue文件中封裝為計算屬性,或者重新將對應字段賦值到 data 中的字段來達到便于使用的目的,具體內容,我們一起來看下面文章內容吧
    2021-10-10
  • 關于vue中計算屬性computed的詳細講解

    關于vue中計算屬性computed的詳細講解

    computed是vue的配置選項,它的值是一個對象,其中可定義多個計算屬性,每個計算屬性就是一個函數,下面這篇文章主要給大家介紹了關于vue中計算屬性computed的詳細講解,需要的朋友可以參考下
    2022-07-07
  • vue3.0 上手體驗

    vue3.0 上手體驗

    vue3.0 beta 版本已經發(fā)布有一段時間了,今天這篇文章就帶大家體驗一下,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • VueX?mapGetters獲取Modules中的Getters方式

    VueX?mapGetters獲取Modules中的Getters方式

    這篇文章主要介紹了VueX?mapGetters獲取Modules中的Getters方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論

富顺县| 铅山县| 常州市| 新民市| 交口县| 特克斯县| 新和县| 常德市| 梁河县| 上饶县| 白水县| 嵊泗县| 神木县| 崇仁县| 吉木乃县| 汤阴县| 绿春县| 梁河县| 康马县| 木里| 武宣县| 马龙县| 夏邑县| 桃源县| 无为县| 兴隆县| 芜湖县| 城市| 乐都县| 长沙县| 河南省| 达日县| 积石山| 新邵县| 杭州市| 来宾市| 孝义市| 胶南市| 武鸣县| 桃园市| 长治市|