vue2.0 中央控制总线 Bus

vue2.0 中央控制总线 Bus

1. 废话不多说,直接上代码
2. main.js中 加入

javascript 复制代码
// main.js
//创建中央控制总线  Bus
// 说白了就是new一个vue实例,将方法挂在上去
Vue.prototype.$event = new Vue();
  1. 事件分发***(A组件中)***
javascript 复制代码
	  // A组件中
	  // 事件分发
	  // 参数一  方法名
	  // 参数二  传递出去的参数
    methods: {
         clickFun(){
           this.$event.$emit('refreshFun',Math.random())
         },
       }
  1. 事件监听 (B组件)
javascript 复制代码
    // 事件监听
    mounted() {
	    this.$event.$on("refreshFun", (val) => {
	      console.log(val)   // 0.7022180283884656
	    });
	  },
  1. 事件销毁***(A组件中)***
javascript 复制代码
 beforeDestroy(){
   this.$event.off('refreshFun') 
 }
  1. 一个简单的事件分发完成!
  2. 当然你也可以在 (拓展 main.js )
javascript 复制代码
    // 对方法进一步的处理
	Vue.prototype.$event = new vue({
		data:{
		},
		methods:{
		    //绑定事件
			on(eventname,callback){
			   this.$on(eventname, callback);
			},
			//触发事件,传递数据
			emit(eventname,...arg){
			   this.$emit(eventname, ...args);
			},
			// 解绑
			off(eventname,callback){
			   this.$off(event, callback);
			}
		}
	}
	// ...............................
相关推荐
likuolei1 小时前
XSL-FO 软件
java·开发语言·前端·数据库
正一品程序员1 小时前
vue项目引入GoogleMap API进行网格区域圈选
前端·javascript·vue.js
j***89461 小时前
spring-boot-starter和spring-boot-starter-web的关联
前端
star_11121 小时前
Jenkins+nginx部署前端vue项目
前端·vue.js·jenkins
im_AMBER1 小时前
Canvas架构手记 05 鼠标事件监听 | 原生事件封装 | ctx 结构化对象
前端·笔记·学习·架构
JIngJaneIL1 小时前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·农产品电商系统
Tongfront1 小时前
前端通用submit方法
开发语言·前端·javascript·react
c***72741 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
可爱又迷人的反派角色“yang”1 小时前
LVS+Keepalived群集
linux·运维·服务器·前端·nginx·lvs
han_1 小时前
前端高频面试题之CSS篇(二)
前端·css·面试