色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

解決vue watch數據的方法被調用了兩次的問題

瀏覽:71日期:2022-11-04 18:59:17

背景:

路由結構/video/1.mp4,即/video是父路由,/1.mp4是/video的動態子路由,在/video父路由中會通過url的params獲取視頻信息,即通過/1.mp4獲取對應的視頻完整信息,然后通過props傳到動態子路由中,然后子路由通過接受到的視頻對象,進行展示

問題:

當路由切換時,即當我點擊其他視頻時,導致動態子路由變化時,我監聽了/video父路由的變化并重新根據url的params獲取視頻對象,并自動通過props傳入子路由中,我在子路由中通過watch 視頻對象來進行一些操作,結果

watch: { video () { console.log('test') }}

test被打印了兩次,通過一番查找,才發現,當子路由切換時,父路由/video中的data數據都會被初始化為默認值,所以導致video對象變化了兩次,一次是因為初始化被重置為默認值空對象,一次是請求后的正確數據

結局:

將video對象存到vuex中,然后父路由將vuex中的video對象傳給子路由就行了

補充知識:vue watch一個對象或數組時,newvalue和oldvalue一樣

在官方的代碼改寫了一下,當深度watch一個對象時,newval和oldval的值為什么是相等的呢?

var vm = new Vue({ data: { a: 1, c:{ c1:1, c2:2 } }, watch: { ’a’: function (val, oldVal) { console.log(val, oldVal,(val== oldVal)) }, // 方法名 ’b’: ’someMethod’, // 深度 watcher ’c’: { handler: function (val, oldVal) { console.log(val, oldVal,(val== oldVal)) }, deep: true } }}) vm.a = 2 vm.c.c1 = 2

和深度無關,而是在修改(不是替換)對象或數組時,舊值將與新值相同,因為它們索引同一個對象/數組。Vue 不會保留修改之前值的副本。

以上這篇解決vue watch數據的方法被調用了兩次的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 亚洲手机看片 | 欧美一区欧美二区 | 99久久精品国产片久人 | 国产一区二区在线 |播放 | 特级毛片aaaa级毛片免费 | 亚洲成a人不卡在线观看 | 99爱在线观看精品视频 | 99亚洲自拍 | 国产盗摄视频 | 综合久久精品 | 欧美国产日韩一区二区三区 | 国产下药迷倒白嫩丰满美女j8 | 日本大臿亚洲香蕉大片 | 国产伦码精品一区二区三区 | 精品一区二区高清在线观看 | 网红主播大尺度精品福利视频 | 国产精品青草久久久久福利99 | 久久一本综合 | 美女视频免费看视频网站 | 女人成午夜大片7777在线 | 国产美女91视频 | 毛片图片 | 亚洲一区二区三区成人 | 国产精品亚洲综合久久 | 一级一级特黄女人精品毛片 | 亚洲国产成人精品一区91 | 农村三级孕妇视频在线 | 国产乱子伦露脸对白在线小说 | 久草视频资源 | 亚洲国产天堂久久精品网 | 二级毛片在线播放 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美在线 | 成人午夜免费视频 | 精品无码三级在线观看视频 | 国产精品久久久 | 九九热视频在线播放 | 久草首页在线观看 | 可以免费看黄的网址 | 国产精品自拍在线观看 | 国产精品日本一区二区不卡视频 | 国产精品欧美一区二区在线看 |