vue 子組件watch監(jiān)聽不到prop的解決
問題描述
在vue項(xiàng)目中,父組件通過prop給子組件傳值時,如果prop值是從服務(wù)器端獲取,則父組件可能會傳給子組件一個默認(rèn)值(服務(wù)端數(shù)據(jù)還未及時獲取),那么,我們就需要實(shí)時watch這個prop值,一旦prop值有更新,將立即通知子組件更新。
解決方案
watch: { levelDetail: { immediate: true, // 很重要!!! handler (val) { this.levelPersonal = !val ? {} : val // console.log(’action Value:’, val, this.levelPersonal) } } },
官方文檔
vue-watch 參考文檔
補(bǔ)充知識:vue父組件props參數(shù)太大時子組件created取不到數(shù)據(jù)-解決方法
問題:
父組件調(diào)用子組件:
<mk-form :list='formList' :formvalue='formvalue'></mk-form>
其中的formList數(shù)據(jù)是用ajax調(diào)用的,數(shù)據(jù)比較大,應(yīng)該有些延遲
子組件的created中調(diào)用props時,輸出的是默認(rèn)數(shù)據(jù):
輸出:
解決方法:
第一種:加上 v-if 來判斷數(shù)據(jù)是佛加載完成了,加載完了再渲染:
<mk-form v-if='formList!=null' :list='formList' :formvalue='formvalue'></mk-form>
第二種:用 setTimeout 來做延遲,但這樣的方法不準(zhǔn)確,應(yīng)該視情況使用
其實(shí)兩種方法都應(yīng)該視情況來使用。
以上這篇vue 子組件watch監(jiān)聽不到prop的解決就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. javascript - 微信公眾號開發(fā)分享給朋友和分享到朋友圈功能的參數(shù)都失效了嗎?2. html5 - 前端切一個透明背景的問題?3. html - mongoose里面的populate沒用?4. java - 在linux下如何用代碼實(shí)現(xiàn)把一個文件拖到一個指定的窗口中5. tp6中env::get相關(guān)問題6. javascript - gulp 使用 testAutoFx 添加前綴后,再使用gulp-minify-css壓縮文件,無法正常壓縮7. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~8. javascript - js刪除頁面節(jié)點(diǎn)有何作用,直接刪除具體代碼不是一樣的效果么?9. objective-c - ios百度地圖定位問題10. java - 我設(shè)置了cookie的max age,但是cookie依然在關(guān)閉游覽器后消失了
