美文网首页
vue的bus总线

vue的bus总线

作者: 小北呀_ | 来源:发表于2020-08-11 17:29 被阅读0次

1. 安装bus

npm install vue-bus

2. main.js引入bus

importVueBus from 'vue-bus';

Vue.use(VueBus)

3. 触发事件


 beforeDestroy () {

      this.$bus.emit('name',this.name)

    },

注意:当我们从A页面跳转到B页面中的时候发生了什么?首先是B组件created 然后beforeMounted接着A组件才被销毁,A组件才执行beforeDestory,以及destoryed。然后B组件再执行mounted。 所以我们可以把A页面组件中的emit事件放到beforeDestory里,因为这个时候,B组件的created钩子已经执行,也就可以监听到从A传过来的事件了。而且从周期来看,B的$on监听,也不能放在mounted钩子里,不然也会出现监听不到的情况。

如下图生命周期:

2.png 1.png

4. 监听事件


  beforeMount () {

        let self = this

        this.$bus.on('name',function(res){

          self.msg = res

        })

      },

注意:beforeCreate,created,beforeMount 可以在这三个周期函数里监听。

5. 销毁事件

beforeDestroy () {

   this.$bus.off('name')

 }

注意:$on事件是不会自动销毁的。需要我们手动来销毁。

相关文章

  • vue-vuex

    事件总线 Vue.prototype.bus = new Vue()console.log(this.bus)子组...

  • vue Bus总线

    vue中我们经常遇到组件之间的通信,通常的通信方式有 父 → 子、子 → 父、兄弟组件 之间的通信。通常处理方式...

  • vue的bus总线

    1. 安装bus npm install vue-bus 2. main.js引入bus 3. 触发事件 注意:当...

  • 2019-02-14 vue组件基础篇3

    非父子组件通信 1.使用一个空的Vue实例作为中央事件总线(bus)2.bus.$emit('key', 'tex...

  • Vue知识分享:事件Bus

    事件Bus在手 天下我有~ 事件Bus是什么 ? 它是一个Vue实例 , 用作一个组件内或者页面内的事件中心总线 ...

  • vue组件通信原理之$bus

    事件总线$bus主要使用vue高级API vm.$on[https://cn.vuejs.org/v2/api/...

  • vue总线Bus.js

    有时候两个组件也需要通信(非父子关系)。当然Vue2.0提供了Vuex,但在简单的场景下,可以使用一个空的Vue实...

  • vue-bus 事件总线

  • vue的bus总线的写法

    由于刚入vue不久,并且经验较浅。所以在使用官方介绍的bus总线的时候出现了一些很简单的低级的疑惑。 我的需求是 ...

  • element实战二(非父子组件传值)

    非父子间传值 实现从app.vue传值给child.vue 事件总线 1. 编写公共bus.js,放在src/ut...

网友评论

      本文标题:vue的bus总线

      本文链接:https://www.haomeiwen.com/subject/pupydktx.html