91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在vue父組件中異步獲取數據傳給子組件

發布時間:2021-05-21 16:42:21 來源:億速云 閱讀:394 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關怎么在vue父組件中異步獲取數據傳給子組件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

但是現在問題是父組件的數據是異步獲取的,而子組件一開始就會渲染,如果此時沒有傳入數據,而子組件又要用到數據中的length屬性時就會報錯:

怎么在vue父組件中異步獲取數據傳給子組件

怎么辦呢?最簡單的辦法就是讓子組件條件渲染,當有數據的時候才渲染,這樣就不會拋出錯誤了。

怎么在vue父組件中異步獲取數據傳給子組件

但是這還不夠完美,子組件一般不直接使用父組件傳來的值,二是監聽一下,然后有變化了的時候再賦值給data,渲染的時候用data里的數據,這樣就能保證隨時動態更新數據 

props: ['floorGoods'],
data() {
return{
flGoods: {}
}
},
watch: {
floorGoods(val) {
this.flGoods = val;
console.log(val);
}
}

在一個方法就是在父組件里用Promise方法異步執行數據的賦值:

new Promise((resolve,reject) => {
if (res.status === 200){
resolve(res);
}
}).then((res) => {
this.category = res.data.data.category;
this.adBar = res.data.data.advertesPicture.PICTURE_ADDRESS;
this.bannerSwipePics = res.data.data.slides;
this.recommendGoods = res.data.data.recommend;
// 也可異步獲取再傳給子組件 Promise
this.floorSeafood = res.data.data.floor1;
this.floorBeverage = res.data.data.floor2;
this.floorFruits = res.data.data.floor3;
console.log(this.floorFruits);
this._initScroll();
})
}).catch(err => {
console.log(err);
});

這樣也是可以的,異步獲取數據導致的報錯的情況會在各個場景出現,比如根據數據渲染dom,而對dom有js操作的時候,會因為還沒渲染出來而找不到響應的dom元素報錯,這里可以用vue提供的$nextTick()函數,或者手動開個setTimeout定時器,延遲獲取;使用better-scroll的時候因為dom沒有渲染出來而無法獲取滾動元素的高度,導致無法滾動,同樣可以用vue提供的這個函數,等dom渲染完了后再初始化滾動。

Vue的優點

Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。

上述就是小編為大家分享的怎么在vue父組件中異步獲取數據傳給子組件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

六安市| 区。| 沽源县| 三门县| 崇文区| 观塘区| 横山县| 巴林左旗| 凤凰县| 酒泉市| 汝城县| 福安市| 高阳县| 凌云县| 阿克苏市| 石首市| 江孜县| 依兰县| 蕉岭县| 永宁县| 富阳市| 新安县| 桂平市| 米林县| 陇南市| 兰州市| 农安县| 临清市| 凤阳县| 东辽县| 金坛市| 维西| 永平县| 安阳市| 泽普县| 临猗县| 左贡县| 五华县| 榆中县| 苍梧县| 静海县|