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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

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

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

但是現(xiàn)在問題是父組件的數(shù)據(jù)是異步獲取的,而子組件一開始就會(huì)渲染,如果此時(shí)沒有傳入數(shù)據(jù),而子組件又要用到數(shù)據(jù)中的length屬性時(shí)就會(huì)報(bào)錯(cuò):

怎么辦呢?最簡單的辦法就是讓子組件條件渲染,當(dāng)有數(shù)據(jù)的時(shí)候才渲染,這樣就不會(huì)拋出錯(cuò)誤了。

但是這還不夠完美,子組件一般不直接使用父組件傳來的值,二是監(jiān)聽一下,然后有變化了的時(shí)候再賦值給data,渲染的時(shí)候用data里的數(shù)據(jù),這樣就能保證隨時(shí)動(dòng)態(tài)更新數(shù)據(jù)

props: ['floorGoods'],

data() {

return{

flGoods: {}

}

},

watch: {

floorGoods(val) {

this.flGoods = val;

console.log(val);

}

}

在一個(gè)方法就是在父組件里用Promise方法異步執(zhí)行數(shù)據(jù)的賦值:

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);

});

這樣也是可以的,異步獲取數(shù)據(jù)導(dǎo)致的報(bào)錯(cuò)的情況會(huì)在各個(gè)場(chǎng)景出現(xiàn),比如根據(jù)數(shù)據(jù)渲染dom,而對(duì)dom有js操作的時(shí)候,會(huì)因?yàn)檫€沒渲染出來而找不到響應(yīng)的dom元素報(bào)錯(cuò),這里可以用vue提供的$nextTick()函數(shù),或者手動(dòng)開個(gè)setTimeout定時(shí)器,延遲獲取;使用better-scroll的時(shí)候因?yàn)閐om沒有渲染出來而無法獲取滾動(dòng)元素的高度,導(dǎo)致無法滾動(dòng),同樣可以用vue提供的這個(gè)函數(shù),等dom渲染完了后再初始化滾動(dòng)。

總結(jié)

以上所述是小編給大家介紹的vue父組件異步獲取數(shù)據(jù)傳給子組件的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

總結(jié)

以上是生活随笔為你收集整理的vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。