" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用$emit實現(xiàn)同步調(diào)用

 更新時間:2024年04月18日 11:28:35   作者:markix  
這篇文章主要介紹了vue使用$emit實現(xiàn)同步調(diào)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue $emit同步調(diào)用

標(biāo)題換一種說法:vue $emit 調(diào)用父組件異步方法,執(zhí)行完畢后再執(zhí)行子組件的某方法

1.使用回調(diào)的形式

異步方法執(zhí)行完成的時間只有父組件知道,如果子組件需要在異步方式執(zhí)行之后執(zhí)行某些邏輯,那么可以將這些邏輯封裝成一個方法傳遞到父組件,由父組件來觸發(fā)執(zhí)行。

  • 父組件
// 組件的html中添加事件 @getData="getData"
methods : {
	getData(params, callback) {
		console.log("子組件的傳遞到父組件的參數(shù)", params);
		console.log("模擬發(fā)送后臺異步請求,延遲3s...");
		setTimeout(() => {
			console.log("異步請求結(jié)束,執(zhí)行回調(diào)函數(shù)");
			callback("父組件傳到子組件的文本666")
		}, 3000)
	}
} 
  • 子組件
// 通過 $emit 觸發(fā)父組件的方法
// 參數(shù):觸發(fā)的事件名稱、事件參數(shù),事件參數(shù)
// 把方法當(dāng)做事件參數(shù)傳遞到父組件,由父組件調(diào)用執(zhí)行。
this.$emit('getData', 10, (res)=> {
	console.log("父組件的返回結(jié)果:", res); //由父組件調(diào)用
})

2.通過$refs調(diào)用組件方法的形式

異步方法執(zhí)行完成的時間只有父組件知道,如果子組件需要在異步方式執(zhí)行之后執(zhí)行某些邏輯,那么可以通過 $refs 拿到子組件的實例,調(diào)用其方法父組件

// 組件的html中添加事件 @getData="getData",添加 ref="childRef"
methods : {
	getData(params) {
		console.log("子組件的傳遞到父組件的參數(shù)", params);
		console.log("模擬發(fā)送后臺異步請求,延遲3s...");
		setTimeout(() => {
			console.log("異步請求結(jié)束,通過 $refs 調(diào)用組件方法");
			this.$refs.childRef.doSomeThing("數(shù)據(jù)");
		}, 3000)
	}
} 

子組件

methods : {
	doSomeThing(data) {
		console.log("父組件的返回結(jié)果:", res); //由父組件調(diào)用
	}
} 
// 通過 $emit 觸發(fā)父組件的方法
// 參數(shù):觸發(fā)的事件名稱、事件參數(shù),事件參數(shù)
// 把方法當(dāng)做事件參數(shù)傳遞到父組件,由父組件調(diào)用執(zhí)行。
this.$emit('getData', 10)

vue前端方法同步調(diào)用,防止異步順序錯誤

因為異步加載的原因

如下所示的代碼,打印順序為(111,333,222)。

解決方法

改成同步調(diào)用使用async和await進(jìn)行方法同步。

則順序就是(111,222,333)就是我們想要的期待的順序

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中組件遞歸及使用問題

    Vue中組件遞歸及使用問題

    這篇文章主要介紹了Vue中組件的遞歸和使用問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Vue多種高效刪除node_modules的方法

    Vue多種高效刪除node_modules的方法

    本文介紹了多種高效刪除node_modules目錄的方法,包括使用專用工具、系統(tǒng)命令、包管理器功能、腳本自動化、配置優(yōu)化以及進(jìn)階技巧,推薦使用rimraf或系統(tǒng)原生命令,它們通常比手動刪除快10倍以上,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Vue中String() 和 .toString()的區(qū)別小結(jié)

    Vue中String() 和 .toString()的區(qū)別小結(jié)

    本文主要介紹了Vue中String()和.toString()的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • 使用vue控制元素顯示隱藏方式

    使用vue控制元素顯示隱藏方式

    這篇文章主要介紹了使用vue控制元素顯示隱藏方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue中插槽slot的使用方法與應(yīng)用場景詳析

    Vue中插槽slot的使用方法與應(yīng)用場景詳析

    這篇文章主要給大家介紹了關(guān)于Vue中插槽slot的使用方法與應(yīng)用場景的相關(guān)資料,插槽(Slot)是Vue提出來的一個概念,正如名字一樣,插槽用于決定將所攜帶的內(nèi)容,插入到指定的某個位置,從而使模板分塊,具有模塊化的特質(zhì)和更大的重用性,需要的朋友可以參考下
    2021-06-06
  • 關(guān)于element ui中el-cascader的使用方式

    關(guān)于element ui中el-cascader的使用方式

    這篇文章主要介紹了關(guān)于element ui中el-cascader的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中的this.$router.push()路由傳值方式

    vue中的this.$router.push()路由傳值方式

    這篇文章主要介紹了vue中的this.$router.push()路由傳值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 基于vue-ssr服務(wù)端渲染入門詳解

    基于vue-ssr服務(wù)端渲染入門詳解

    這篇文章主要介紹了基于vue-ssr服務(wù)端渲染入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 不能通過IP地址訪問VUE項目的問題及解決

    不能通過IP地址訪問VUE項目的問題及解決

    這篇文章主要介紹了不能通過IP地址訪問VUE項目的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 在vue中如何引入外部的css文件

    在vue中如何引入外部的css文件

    這篇文章主要介紹了在vue中如何引入外部的css文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論

钟山县| 抚松县| 辉县市| 黄龙县| 蓬安县| 江山市| 五台县| 章丘市| 雷波县| 江华| 东兰县| 沛县| 云阳县| 手游| 南昌市| 峨眉山市| 九江县| 吴旗县| 鄂尔多斯市| 德清县| 临泉县| 孝感市| 姚安县| 三原县| 宜良县| 略阳县| 河池市| 横峰县| 舞钢市| 揭西县| 九寨沟县| 修武县| 丰都县| 辽宁省| 灵武市| 禄丰县| 湛江市| 龙州县| 永丰县| 咸阳市| 讷河市|