首先需要在任意地方添加一个bus.js;

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

 import Vue from 'vue'
export default new Vue;

  

在需要通信的组件都引入Bus.js

如果你的bus.js是自定义一个bus的文件那from后面就改成你的所放的位置

import Bus from './bus.js'

接下来就是要组件通信了

添加一个 触发 #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 {
href: 'www.dddddd//d/d/d'
}
},
mounted() {
     $("body").on("click",".router_itme",function(){
        //发送方
        Bus.$emit("hrefs", this.href);
            })
}
}

  打开要和$emit通信的另外一个组件  ,在钩子函数中监听msg事件

<template>
<div id="on">
<p>{{message}}</p>
</div>
</template> import Bus from './bus.js'
export default {
data() {
return {
href : ''
}
},
mounted(){
// this.href = location.href.split('#')[1]
// 接收传header组件传过来的路径
 let self = this;
Bus.$on('hrefs', (e) => {
self.href = e.split('#')[1]
})
}
}

  

使用Bus.js进行兄弟(非父子)组件通信的更多相关文章

  1. vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

    vue2中废弃了$dispatch和$broadcast广播和分发事件的方法.父子组件中可以用props和$emit().如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通 ...

  2. Vue 非父子组件通信

    组件是Vue核心的一块内容,组件之间的通信也是很基本的开发需求.组件通信又包括父组件向子组件传数据,子组件向父组件传数据,非父子组件间的通信.前两种通信Vue的文档都说的很清楚,但是第三种文档上确只有 ...

  3. Vue 非父子组件通信方案

    Vue 非父子组件通信方案 概述 在 Vue 中模块间的通信很普遍 如果是单纯的父子组件间传递信息,父组件可以使用 props 将数据向下传递到子组件,而在子组件中可以使用 events (父组件需要 ...

  4. vue2.0父子组件以及非父子组件通信

    官网API: https://cn.vuejs.org/v2/guide/components.html#Prop 一.父子组件通信 1.父组件传递数据给子组件,使用props属性来实现 传递普通字符 ...

  5. vue组件通信之非父子组件通信

    什么顺序不顺序的.. 先来说说非父子组件通信. 首先,我们先来了解下vue中的 1.$emit  触发当前实例上的事件,附加参数都会传给监听器回调. 2.$on  监听当前实例上的自定义事件.事件可以 ...

  6. vue父子组件及非父子组件通信

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...

  7. vue2.0父子组件以及非父子组件通信传参详解

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...

  8. Vue 组件 非父子组件通信

    有时候两个组件也需要通信(非父子关系),在简单的场景下,可以使用一个空的vue实例作为中央事件总线: var bus = new Vue(); //触发组件a中的事件 bus.$emit('id-se ...

  9. 封装好的observer.js,用于非父子组件传值,直接调用$on和$emit方法

    const eventList = {} const $on = (eventName,callback)=>{ if(!eventList[eventName]){ eventList[eve ...

随机推荐

  1. python基础之函数式编程、匿名函数、内置函数

    一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...

  2. Spark-RDD算子

    一.Spark-RDD算子简介 RDD(Resilient Distributed DataSet)是分布式数据集.RDD是Spark最基本的数据的抽象. scala中的集合.RDD相当于一个不可变. ...

  3. KVM中断虚拟化浅析

    2017-08-24 今天咱们聊聊KVM中断虚拟化,虚拟机的中断源大致有两种方式,来自于用户空间qemu和来自于KVM内部. 中断虚拟化起始关键在于对中断控制器的虚拟化,中断控制器目前主要有APIC, ...

  4. nginx 与 浏览器缓存

    一.本地静态文件 location /html/{ rewrite ^(html/.*)$ /$1 break; root /data/static; expires 12h; etag off; i ...

  5. 阿里云centos7.2 安装mysql 6.5

    [root@111 ~]# uname -aLinux bxhs 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_ ...

  6. python模块之subprocess模块

    简述 subprocess意在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.*subprocess最简单的用法就是 ...

  7. 优雅的使用Laravel之phpstorm配置

    优雅的使用Laravel之phpstorm配置 先打开一个Laravel 项目,然后在project tool 窗口选择根节点.然后右键->Composer | Init composer . ...

  8. Spark调优秘诀

    1.诊断内存的消耗 在Spark应用程序中,内存都消耗在哪了? 1.每个Java对象都有一个包含该对象元数据的对象头,其大小是16个Byte.由于在写代码时候,可能会出现这种情况:对象头比对象本身占有 ...

  9. PAT 1135 Is It A Red-Black Tree[难]

    1135 Is It A Red-Black Tree (30 分) There is a kind of balanced binary search tree named red-black tr ...

  10. testng生成报告ReportNG美化测试报告

    testng生成报告ReportNG美化测试报告 testng生成报告ReportNG美化测试报告 ReportNG 是一个配合TestNG运行case后自动帮你在test-output文件内生成一个 ...