vue踩坑--props傳輸異步數(shù)據(jù)的后續(xù)

我其實是想講,在props傳輸異步數(shù)據(jù)之后,使用watch監(jiān)聽在測試服完美起跑,正式服直接掛掉的這樣一個故事,但是因為這樣寫的話標(biāo)題太長,所以就......

為什么使用watch監(jiān)聽?

在一個vue項目里面,我把剛從后臺請求到的數(shù)據(jù)直接通過props傳給子組件,這里遇到一個問題,我的頁面渲染出來的props數(shù)據(jù)是空的(手動黑人問號)amazing,unbelievable...
我就在網(wǎng)上找了一些方法:(這里寫兩個,其他的忘記了)
一種是我現(xiàn)在寫的watch去監(jiān)聽props傳過來的數(shù)據(jù)
另一種是子組件上做判斷,類似如下的方式(五星推薦):

  <Parent><Child v-if="data" :data="data"><Child/><Parent/>

(為什么我用watch呢,我覺得監(jiān)聽這個詞牛逼)

然后呢?

馬上,你就會發(fā)現(xiàn)這是個巨坑的姿勢。
詭異的事情發(fā)生了:當(dāng)晚上線,正式服上面我用watch監(jiān)聽的數(shù)據(jù)不見了(wt fu)。原因是(才疏學(xué)淺)watch監(jiān)聽復(fù)雜數(shù)據(jù)類型,特別是數(shù)組、對象互相嵌套的數(shù)據(jù)是不能夠的,或者說簡單的函數(shù)的方式是無法達(dá)到預(yù)想的監(jiān)聽效果,這個時候需要使用對象的方式在watch中書寫:

watch:{
  prop:{
    handler(newval, oldval) {
      console.log(val)
    },
    deep: true,  //  深度監(jiān)聽復(fù)雜數(shù)據(jù)結(jié)構(gòu)
    immediate: true  //  初始化設(shè)置默認(rèn)數(shù)據(jù)
  }
}

這個問題暫時就這樣把,正在學(xué)習(xí)中,更多的內(nèi)容,以后慢慢補上。
歡迎指正,歡迎延申

參考

(筆記做的不及時,忘記看誰的文章了,網(wǎng)上很多,各位隨意)
Vue的watch (官網(wǎng)baba)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容