All files / src/utils vueBus.js

0% Statements 0/6
100% Branches 0/0
0% Functions 0/4
0% Lines 0/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
/**
 * @author SoldierAb
 * @description Vue跨组件通信库
 * @example
 *       import Bus from '@/utils/vueBus';
 *       Vue.use(Bus);
 * 
 *       this.$bus.emit('refresh', ...args);
 * 
 *       created() {
 *           this.$bus.on("refresh", fn);
 *       },
 *
 *       beforeDestroy() {                                       // ~ attention ~  一定要记得解绑事件,不然会造成内存泄漏哦
 *           this.$bus.off("refresh");
 *       },
 *          
 */
 
const install  = (Vue)=>{
    const Bus = new Vue({
        methods:{
            emit(event,...args){
                this.$emit(event,...args);
            },
            on(event,callback){
                this.$on(event,callback);
            },
            off(event,callback){
                this.$off(event,callback);
            }
        }
    })
 
    Vue.prototype.$bus=Bus
}
 
 
export default install;