vue 组件之间事件触发($emit)与event Bus($on)的用法说明

组件之间事件触发

之前使用组件,并不是很频繁,是水平的问题,目前工作中,公司大佬带着我手写过一个组件,再此很感谢他的指导。目前简单的组件已经有了自己的逻辑思维,正在从低级码农向中级码农蜕变。废话不多说。上图看看组件情况。

操作按钮组合组件:

在bus.js里面 写入下面信息

import Vue from 'vue'

export default new Vue;

接下来就是要组件通信了

添加一个 触发 #emit的事件按钮

<template>
  <div id="emit">
    <button @click="bus">按钮</button>
  </div>
 </template> 

import Bus from './bus.js' 
export default { 
  data() {
    return {
      message: ''"
    }
   },
  methods: {
    bus () {
     Bus.$emit('msg', '我要传给兄弟组件们,你收到没有')
    }
  }
}

打开要和$emit通信的另外一个组件 添加

在钩子函数中监听msg事件

<template>
  <div id="on">
      <p>{{message}}</p>
  </div>
</template>

import Bus from './bus.js'
export default {
  data() {
   return {
    message: ''
   }
  },
  mounted() {
    let self = this
    Bus.$on('msg', (e) => {
     self.message = e
     console.log(`传来的数据是:${e}`)
    })
   }
  }

最后p会显示来自$emit传来的信息

以上这篇vue 组件之间事件触发($emit)与event Bus($on)的用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持来客网。