Vue3 emits結(jié)合回調(diào)函數(shù)的使用方式
Vue3 emits結(jié)合回調(diào)函數(shù)使用
回調(diào)函數(shù)
先說(shuō)下啥是回調(diào)函數(shù),舉個(gè)例子:
當(dāng)A方法調(diào)用B方法時(shí),A方法會(huì)傳一個(gè)方法作為參數(shù)給B方法,B方法中可以去按照邏輯執(zhí)行A傳遞過(guò)的函數(shù),就是回頭再調(diào)用A方法傳參給的方法。
有點(diǎn)繞哈,寫(xiě)段代碼參考下:
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ù)等待特殊類(lèi)型。
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.js實(shí)現(xiàn)一個(gè)漂亮、靈活、可復(fù)用的提示組件示例
這篇文章主要介紹了Vue.js實(shí)現(xiàn)一個(gè)漂亮、靈活、可復(fù)用的提示組件示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03vue點(diǎn)擊標(biāo)簽切換選中及互相排斥操作
這篇文章主要介紹了vue點(diǎn)擊標(biāo)簽切換選中及互相排斥操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Vue2.0設(shè)置全局樣式(less/sass和css)
這篇文章主要為大家詳細(xì)介紹了Vue2.0設(shè)置全局樣式(less/sass和css),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11django+vue實(shí)現(xiàn)注冊(cè)登錄的示例代碼
這篇文章主要介紹了django+vue實(shí)現(xiàn)注冊(cè)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解
這篇文章主要介紹了vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03