vue 事件中央总线
vue 事件中央总线
作用: 实现任意组件间的通信
实现的方法: 有以下两种方式
方式1: 全局事件总线
1.在main.js文件中定义
new Vue({ el: '#app', router, store, render: h => h(App), beforeCreate(){ Vue.prototype.$bus = this } })
2.使用方法
this.$bus.$emit('定义名称',值) // 监听数据 (在mounted监听数据) this.$bus.$on('定义名称' val=>{}) // 销毁(在beforeDestroy销毁) this.$bus.$off('定义名称')
方式2:
1.在main.js的同级建一个bus.js
import Vue from "vue" export default new Vue
2.在main.js引入
// 事件中央总线传值 Vue.prototype.bus = new Vue();
3.使用方法
`// 1.引入(传值和监听数据部分都需引入bus.js文件)
import Bus from '@bus.js'
// 传值(我是在beforeDestroy中传值的)
Bus.$emit('定义名称',值)
// 监听数据 (我在beforeCreate 中监听数据)
Bus.$on('定义名称',val=>{})
//销毁(在监听数据页面的 beforeDestroy 中销毁)
Bus.$off('定义名称')
扩展: 还可以使用消息订阅与发布的方式 实现任意组件间的传值
// 下载插件 pubsub-js
npm i pubsub-js --save
// 在需要传和监听的页面引入
import pubsub from 'pubsub-js'
// 发布(传值)
pubsub.publish('xxx',值)
// 订阅(接收)
this.pubId = pubsub.subscribe('xxx',(msgName,data)=>{
// 注意 msgName的值为你定义的 xxx data为你真正传过来的 值
})
// 销毁 (在beforeDestroy)
pubsub.unsubscribe(this.pubId)
`
如果此篇博文对您有帮助,还请动动小手点赞 收藏 留言 呐~,谢谢 ~ ~
最新文章
- 在ASP.NET MVC项目中使用React
- Software Development Principle
- [转]ORACLE 动态执行SQL语句
- 为什么OGNL表达式功能强大?
- 微信公共平台开发1 .net
- js阻止表单重复提交
- WPF 路由事件总结
- Unbutu网卡驱动安装(Intel内置网卡8086:15b8)
- spring关于“transactionAttributes”的相关配置
- zabbix监控redis多实例(low level discovery)
- 用Tomcat和Eclipse开发Servlet程序
- iOS开发之文件(分段)下载
- nodeJS之域名DNS
- poi控制简单的word
- mybatis学习 -每天一记 mybatis insert null 报错
- python:实例化configparser模块读写配置文件
- 动态创建的 CEdit 被限制长度,增加 ES_AUTOHSCROLL 属性;被无法Tab激活焦点,增加 WS_TABSTOP 属性(转)
- JavaScript中的prototype和__proto__细致解析
- 知识记录:ASP.NET 应用程序生命周期概述及Global.asax文件中的事件
- rpm -e 包名 卸载安装的二进制包