Vue全局事件总线$bus安装与应用小结

目录
  • 1.什么是全局事件总线
  • 2.安装
  • 3.使用
  • 4.销毁
  • 完整版示例:

1.什么是全局事件总线

一种组件间通信的方式,适用于任意组件间通信。

2.安装

在main.js里安装全局事件总线:

new Vue({
    ......
    beforeCreate(){
        //安装全局事件总线,$bus就是当前应用的vm
        Vue.prototype.$bus=this
    }
    ......
})

3.使用

使用全局事件总线:

1.接收数据:A组件想接收数据,则要在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身。

methods(){
    //事件的回调,用来接收数据
	demo(data){
        ……
    }
}
……
mounted(){
    //必须要在mounted中绑定自定义事件,xxx为自定义事件的名称,this.demo为事件回调
	this.$bus.$on(‘xxx',this.demo)
}

2.提供数据:B组件要给A组件传递数据,就要触发A组件中的自定义事件并携带要传递的数据

this.$bus.$emit(‘xxx',数据)

4.销毁

最好在beforeDestory的狗子函数中,用$off去解绑当前组件所用到的事件

//在A组件中,组件销毁之前解绑事件
beforeDestory(){
    this.$bus.$off('xxx')
}

完整版示例:

到此这篇关于Vue全局事件总线$bus安装与应用的文章就介绍到这了,更多相关Vue全局事件总线内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue全局事件总线和订阅与发布使用案例分析讲解

    目录 一.全局事件总线 作用 安装 组件使用案例 案例分析 组件一(小明) 组件二(小红) 效果展示 二.订阅与发布 安装 组件使用案例 案例分析 组件一(小明) 组件二(小红) 效果展示 一.全局事件总线 作用 一种组件间通信的方式 适用于任意组件间通信. 安装 安装全局事件总线:在入口文件main.js中,给VM添加$bus,任意组件都可以在原型中调用. new Vue({ render: h => h(App), beforeCreate(){ Vue.prototype.$bus = t

  • Vue全局事件总线你了解吗

    全局事件总线,是组件间的一种通信方式,适用于任何组件间通信. 看下面具体的例子. 父组件:App <template> <div class="app"> <Company/> <Employee/> </div> </template> <script> import Company from "./components/Company.vue"; import Employee

  • Vue全局事件总线$bus安装与应用小结

    目录 1.什么是全局事件总线 2.安装 3.使用 4.销毁 完整版示例: 1.什么是全局事件总线 一种组件间通信的方式,适用于任意组件间通信. 2.安装 在main.js里安装全局事件总线: new Vue({ ...... beforeCreate(){ //安装全局事件总线,$bus就是当前应用的vm Vue.prototype.$bus=this } ...... }) 3.使用 使用全局事件总线: 1.接收数据:A组件想接收数据,则要在A组件中给$bus绑定自定义事件,事件的回调留在A组

  • 如何在pyqt中实现全局事件实战记录

    目录 前言 全局事件总线 Vue 中的全局事件总线 Qt 中的全局事件总线 总结 前言 在 Qt 中可以使用信号和槽机制很方便地实现部件之间的通信,考虑下面这样的场景: 我想要点击任意一个专辑卡并通知主界面跳转到专辑界面,那么一种实现方式如上图所示:点击任意一个蓝色方框所示的专辑卡,发出 switchToAlbumIntetrfaceSig 给父级部件专辑卡视图,因为专辑卡视图有许多个分组,比如上图中为 aiko 分组,可能还有 柳井爱子 分组,那么这些视图都应该将 switchToAlbumI

  • vue bus全局事件中心简单Demo详解

    1.vue-cli搭建好项目之后,使用npm安装vue-bus  npm install vue-bus 2.在入口文件main.js中全局注册 import Vue from 'vue'; import VueBus from 'vue-bus'; Vue.use(VueBus); 3.传递数据: this.$bus.emit("eventName",data) 4.接收数据: this.$bus.on("eventName",data) 5.注意事项 this的

  • 详解Vue 动态组件与全局事件绑定总结

    最近在自学 Vue 也了解了一些基本用法,也记录了一些笔记有兴趣的朋友可以去查看我的其他文章,技术这东西真的不能光靠看,看是没有的,你必须要动手实践,只有在实战项目中才能发现问题,才能发现我们没有掌握的知识点,然后发现问题解决问题,我们的能力才能得以提升,要不然就有点眼高手低了. 基于这个想法于是就开始自己去撸了一个旅游网站,旅游网站嘛避免不了城市的选择,所以在实现城市选择列表的时候碰到的一些问题,以及解决办法今天就记录下来做一个总结. 城市列表选择组件 首先说说我们要实现一个什么样的城市选择组

  • 在 Vue.js中优雅地使用全局事件的方法

    Vue 2.0 版本中取消了 v1 中的 $broadcast 方法,因此要使用全局事件时,不可避免地会使用到 event-bus 之类的方法,本文旨在提出一种不需要用到 event-bus 的全局事件使用方法. 主要思路是将事件全部绑定在 $root 上,并为所有全局事件添加一个前缀防止冲突,再通过向 $options 上注入新的 key 来简化使用方式. 以下为 mixin 文件代码 // event-mixin.js export default { created() { if (thi

  • 自定义vue全局组件use使用、vuex的使用详解

    自定义vue全局组件use使用(解释vue.use()的原理) 我们在前面学习到是用别人的组件:Vue.use(VueRouter).Vue.use(Mint)等等. 其实使用的这些都是全局组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的原理 而我们再用Axios做交互,则不能使用Vue.use(Axios),因为Axios没有install自定义一个全局Loading组件,并使用: 总结目录: |-components |-loading |-index.js 导出

  • Vue组件通信之Bus的具体使用

    关于组件通信我相信小伙伴们肯定也都很熟悉,就不多说了,对组件通信还不熟悉的小伙伴移步这里. 在vue2.0中 $dispatch 和 $broadcast 已经被弃用.官方文档中给出的解释是: 因为基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的过程中会变得越来越脆弱.这种事件方式确实不太好,我们也不希望在以后让开发者们太痛苦.并且$dispatch 和 $broadcast 也没有解决兄弟组件间的通信问题. 官方推荐的状态管理方案是 Vuex.不过如果项目不是很大,状态管理也

  • Vue eventBus事件总线封装后再用的方式

    目录 前言 空vue实例构建的事件总线 简单的方式 复杂又简单的方式 总结 前言 现在的项目中是不是在使用 eventbus 的时候,还有很多人都是直接创建一个vue 实例直接使用的,哪里需要哪里引入,而没有简单的处理下.接下来就先说下这种方式. 空vue实例构建的事件总线 在改造一个项目的时候就发现,里面的 bus.js 文件中就是这么处理的.两行代码搞定. import Vue from "vue"; export default new Vue() 使用的时候,就没那么简单了,有

随机推荐