日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法

發布時間:2025/3/15 vue 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

但是這還不夠完美,子組件一般不直接使用父組件傳來的值,二是監聽一下,然后有變化了的時候再賦值給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 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。