使用bus实现父子兄弟跨级间传值

1.直接创建vue实例

//Bus.js
import Vue from "vue";

const Bus = new Vue();

export default Bus;

在main.js中引入:

import Bus from './Bus'

Vue.prototype.Bus = Bus;

使用:

created() {
    this.Bus.$on('setMsg',content =>{
        this.msg = content;
    })
}
////////////////
methods:{
    sendEvent(){
            this.Bus.$emit('setMsg','Hi Vue(brother)我是来自同级组件的')
    }
},

2.仿效vue-rooter或者vuex插件那样制造bus插件使用

//vue-bus.js
const install = function(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;

在main.js中引入:

import VueBus from './vue-bus';
Vue.use(VueBus)

使用

created() {
    this.$bus.on('setMsgBus',content =>{
        this.msg1 = content;
    })
}
//////////////
methods:{
    setEvent(){
        this.$bus.emit('setMsgBus','say Hi bus 插件(brother)我是来自同级组件的')
    }
}

参考代码见github上代码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基于Vue的组件库 https://github.com/ElemeFE/element" element 饿了...
    _执着执着再执着阅读 32,926评论 4 230
  • awesome-github-vue 是由OpenDigg[https://blog.csdn.net/opend...
    我是七月阅读 7,110评论 0 20
  • 宁静的夏日午后,一座宅院内的长椅上,并肩坐着一对母子,风华正茂的儿子正在看报,垂暮之年的母亲静静地坐在旁边。 忽然...
    曹丞鈁湲阅读 2,338评论 0 0
  • 以前的天气是一年四季分明,现在的天气是一年四季进入随机模式,可能今天是艳阳高照,明天就是风雨欲来,把收起的秋衣秋裤...
    桃灼妖妖阅读 1,544评论 0 0
  • 向上的路,并不拥挤。拥挤是因为,大部分人选择了安逸!
    __白婚纱阅读 1,238评论 0 0

友情链接更多精彩内容