Vue3 emits結合回調(diào)函數(shù)的使用方式
Vue3 emits結合回調(diào)函數(shù)使用
回調(diào)函數(shù)
先說下啥是回調(diào)函數(shù),舉個例子:
當A方法調(diào)用B方法時,A方法會傳一個方法作為參數(shù)給B方法,B方法中可以去按照邏輯執(zhí)行A傳遞過的函數(shù),就是回頭再調(diào)用A方法傳參給的方法。
有點繞哈,寫段代碼參考下:
const funA = () => { // 業(yè)務邏輯 ..... funB('布拉布拉', 123, () => { // 回調(diào)的業(yè)務邏輯 }); }; /** * B 方法 最好加上ts約束 * @param param1 參數(shù)1 * @param param2 參數(shù)2 * @param fun1 參數(shù)函數(shù)1,這里是一個函數(shù) */ const funB = (param1:string, param2: number, fun1: Function){ // 拿到參數(shù)做業(yè)務 .... // 執(zhí)行參數(shù)函數(shù),這里會執(zhí)行到A方法中傳遞的方法 fun1(); }
其實vue中有很多這種示例:
如vue響應式的邏輯處理有很多都是將函數(shù)存儲到map set集合中,然后去做邏輯,這里主要的思路就是方法傳參不僅可以傳遞普通參數(shù),也可以傳遞函數(shù),集合存儲亦是可以存儲函數(shù)等待特殊類型。
emits調(diào)用回調(diào)函數(shù)
回到主題哈,結合上面的代碼這里就很好理解了。
正常emits用于子父組件的通信,子組件通信父組件,使用回調(diào)函數(shù)就是想父組件接受了子組件的消息后再回調(diào)到子組件中。
// 子組件 emtis('demoBack', data, () => { // 回調(diào)業(yè)務 }); // 父組件 <子組件 @demoBack="handleDemoBack"> const handleDemoBack = (data, fun) => { // data 是傳遞的數(shù)據(jù) // 執(zhí)行回調(diào)函數(shù) fun(); };
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue.js實現(xiàn)一個漂亮、靈活、可復用的提示組件示例
這篇文章主要介紹了Vue.js實現(xiàn)一個漂亮、靈活、可復用的提示組件示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解
這篇文章主要介紹了vuex中數(shù)據(jù)持久化插件vuex-persistedstate使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03