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);
			}
		}
	}
	// ...............................
相关推荐
顾安r13 小时前
11.8 脚本网页 星际逃生
c语言·前端·javascript·flask
Hello.Reader13 小时前
Data Sink定义、参数与可落地示例
java·前端·网络
im_AMBER13 小时前
React 17
前端·javascript·笔记·学习·react.js·前端框架
一雨方知深秋14 小时前
2.fs模块对计算机硬盘进行读写操作(Promise进行封装)
javascript·node.js·promise·v8·cpython
谷歌开发者14 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
一晌小贪欢14 小时前
【Html模板】电商运营可视化大屏模板 Excel存储 + 一键导出(已上线-可预览)
前端·数据分析·html·excel·数据看板·电商大屏·大屏看板
发现你走远了15 小时前
连接模拟器网页进行h5的调试(使用Chrome远程调试(推荐)) 保姆级图文
前端·chrome
街尾杂货店&16 小时前
css - 实现三角形 div 容器,用css画一个三角形(提供示例源码)简单粗暴几行代码搞定!
前端·css
顺凡16 小时前
删一个却少俩:Antd Tag 多节点同时消失的原因
前端·javascript·面试
小白路过16 小时前
CSS transform矩阵变换全面解析
前端·css·矩阵