vue中父元件傳遞動態初始值給子元件時的問題

2021-09-13 23:35:07 字數 712 閱讀 9462

先貼上報錯資訊方便他人查詢:

當我看到這個問題的時候真的是無從下手,這是什麼錯?雖然報錯了但是頁面卻也正常的渲染出來了,什麼鬼?~~~

後來在網上查了之後才明白,原來是父元件給子元件傳遞的初始值是非同步獲取的,也就是說子元件獲取到父元件傳過來的值的時候,其實這個值是未定義(undefined)的,而獲取到值之後就更新了子元件中的資料,這就是子元件報錯卻又能渲染出頁面的原因

既然原因找到了,那麼接下來就說一下解決的方法

在網上找了找,基本上解決的方法就兩種

在子元件中通過watch監聽要傳遞的值,並通過v-if進行判斷該值是否存在,不存在就不會渲染,也就不會報錯了,等到資料已經載入出來也就能正常渲染了(注意:如果watch監聽的資料不是基本型別,而是物件、陣列,需要進行深度監聽)

通過vuex進行管理,當然,這種方式適用於多個頁面都用到該資料的情況,不然就有點浪費了

vue父元件傳遞值給子元件筆記

解釋 當前vue頁面中呼叫另乙個子元件 多用於公共方法抽成子元件呼叫,在各個頁面中都可使用 子元件定義 父元件傳遞的值 v bind 繫結的值跟子元件props中定義的保持一致 父元件中區域性註冊子元件 區域性註冊元件,在每個頁面中使用都需要重新註冊,此時,可以使用全域性註冊的方式去實現 一次註冊,...

vue 子元件給父元件傳值

子元件給父元件傳值的關鍵內容 在父元件中使用子元件,在使用時自定義事件型別和事件函式 在子元件中需要定義事件來定義事件型別 在子元件的methods中的事件函式中用this.emit 方法操作事件型別 在父元件的methods中操作自定義的事件函式 div id son father fatherd...

vue元件通訊 子元件傳遞資料給父元件

上次已經介紹了父元件如何傳遞資料給子元件,那麼,子元件又是如何將資料傳遞給父元件的呢?vue中,子元件用 emit 來觸發事件,父元件用 on 來監聽子元件,也可通過直接在子元件的自定義標籤上使用v on來監聽子元件觸發的自定義事件。下面通過乙個例子來講解 每次加2後的總數 這裡只講解加1的操作,在...