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)

`

如果此篇博文对您有帮助,还请动动小手点赞 收藏 留言 呐~,谢谢 ~ ~

最新文章

  1. 在ASP.NET MVC项目中使用React
  2. Software Development Principle
  3. [转]ORACLE 动态执行SQL语句
  4. 为什么OGNL表达式功能强大?
  5. 微信公共平台开发1 .net
  6. js阻止表单重复提交
  7. WPF 路由事件总结
  8. Unbutu网卡驱动安装(Intel内置网卡8086:15b8)
  9. spring关于“transactionAttributes”的相关配置
  10. zabbix监控redis多实例(low level discovery)
  11. 用Tomcat和Eclipse开发Servlet程序
  12. iOS开发之文件(分段)下载
  13. nodeJS之域名DNS
  14. poi控制简单的word
  15. mybatis学习 -每天一记 mybatis insert null 报错
  16. python:实例化configparser模块读写配置文件
  17. 动态创建的 CEdit 被限制长度,增加 ES_AUTOHSCROLL 属性;被无法Tab激活焦点,增加 WS_TABSTOP 属性(转)
  18. JavaScript中的prototype和__proto__细致解析
  19. 知识记录:ASP.NET 应用程序生命周期概述及Global.asax文件中的事件
  20. rpm -e 包名 卸载安装的二进制包

热门文章

  1. 思维分析逻辑 2 DAY
  2. RabbitMq简单模式
  3. npm安装hexo报错
  4. Axios 类似于for循环发送批量请求{:axios.all axios.spread}。
  5. linux deb系 apache 配置解析php文件
  6. 在Windows模拟器中使用LVGL8.3
  7. node学习01
  8. 实践案例:同程艺龙网的 Dubbo 升级经验总结
  9. JavaEE Day12 Xml
  10. 【Java SE进阶】Day12 函数式接口、函数式编程(Lambda表达式)