Vue3 emits結(jié)合回調(diào)函數(shù)的使用方式
Vue3 emits結(jié)合回調(diào)函數(shù)使用
回調(diào)函數(shù)
先說下啥是回調(diào)函數(shù),舉個(gè)例子:
當(dāng)A方法調(diào)用B方法時(shí),A方法會(huì)傳一個(gè)方法作為參數(shù)給B方法,B方法中可以去按照邏輯執(zhí)行A傳遞過的函數(shù),就是回頭再調(diào)用A方法傳參給的方法。
有點(diǎn)繞哈,寫段代碼參考下:
const funA = () => {
// 業(yè)務(wù)邏輯 .....
funB('布拉布拉', 123, () => {
// 回調(diào)的業(yè)務(wù)邏輯
});
};
/**
* B 方法 最好加上ts約束
* @param param1 參數(shù)1
* @param param2 參數(shù)2
* @param fun1 參數(shù)函數(shù)1,這里是一個(gè)函數(shù)
*/
const funB = (param1:string, param2: number, fun1: Function){
// 拿到參數(shù)做業(yè)務(wù) ....
// 執(zhí)行參數(shù)函數(shù),這里會(huì)執(zhí)行到A方法中傳遞的方法
fun1();
}
其實(shí)vue中有很多這種示例:
如vue響應(yīng)式的邏輯處理有很多都是將函數(shù)存儲(chǔ)到map set集合中,然后去做邏輯,這里主要的思路就是方法傳參不僅可以傳遞普通參數(shù),也可以傳遞函數(shù),集合存儲(chǔ)亦是可以存儲(chǔ)函數(shù)等待特殊類型。
emits調(diào)用回調(diào)函數(shù)
回到主題哈,結(jié)合上面的代碼這里就很好理解了。
正常emits用于子父組件的通信,子組件通信父組件,使用回調(diào)函數(shù)就是想父組件接受了子組件的消息后再回調(diào)到子組件中。
// 子組件
emtis('demoBack', data, () => {
// 回調(diào)業(yè)務(wù)
});
// 父組件
<子組件 @demoBack="handleDemoBack">
const handleDemoBack = (data, fun) => {
// data 是傳遞的數(shù)據(jù)
// 執(zhí)行回調(diào)函數(shù)
fun();
};總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件
本篇文章主要介紹了vue自定義全局組件并通過全局方法 Vue.use() 使用該組件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
詳解Vue數(shù)據(jù)驅(qū)動(dòng)原理
這篇文章主要介紹了詳解Vue數(shù)據(jù)驅(qū)動(dòng)原理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)vue框架的相關(guān)知識(shí),感興趣的朋友可以了解下2020-11-11
使用vue-element-admin框架調(diào)用后端接口及跨域的問題
這篇文章主要介紹了使用vue-element-admin框架調(diào)用后端接口及跨域的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11

