久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

02
2024/08

vue3中的全局事件總線

發(fā)布時間:2024-08-02 16:25:59
發(fā)布者:dzw
瀏覽量:
0

        我們之前講過一期組件通信,其中有一個vue2的全局事件總線,通過在Vue原型對象身上創(chuàng)建一個名為Bus的方法,因為Vue的原型對象的屬性的方法都可以被Vue實例對象和VC組件實例對象訪問得到,所以通過全局事件總線,兄弟組件之間也能傳值。

        而vue3沒有了全局事件總線,$on和$emit無法使用了,如果想要使用全局事件總線就需要借助第三方插件。

        這里我們呢使用mitt這個插件。

    //npm    
    npm install mitt -s
    //yarn
    yarn add mitt

        通過以上代碼可以下載mitt。然后我們可以封裝mitt為一個單獨的js文件。

    import mitt from 'mitt'    
     
    const bus = {}
    const emitter = mitt()
     
    bus.$on = emitter.on
    bus.$off = emitter.off
    bus.$emit = emitter.emit
 
    export default bus

        然后在main.js內(nèi)引用該文件

    import Bus from ‘./utils/myBus’


        import導(dǎo)入后,通過app.fig.globalProperties就能把他變成全局事件,$EventBus可以自定義名字,不重要

    app.config.globalProperties.$EventBus = Bus


        然后就可正常使用了。使用方法可以參考上一期,需要注意,因為vue3沒有this了,我們直接寫就可以,根據(jù)import引入的名字來調(diào)用。

image

    


關(guān)鍵詞:
返回列表