美文网首页程序员
vue2.0 兄弟组件(平级)通讯

vue2.0 兄弟组件(平级)通讯

作者: 取个帅气的名字真好 | 来源:发表于2018-01-15 15:22 被阅读126次

1、前戏吧

先看看前两篇文章:
父组件传给子组件
子组件传给父组件

看图 看图 看图!!!


大概原理.png

个人理解:
这明显是生活中弟弟打电话给哥哥一样,双方都需要手机,需要信号发射塔。

  • 弟弟 => A组件
  • 哥哥 => B组件
  • 弟弟的手机 => $emit发送数据
  • 哥哥的手机 => $on监听并接收数据
  • 信号发射塔 => 中间事件线
  • App.vue => 不用说都知道是地球

2、 代码

2.1、在src/asstes下新建中间事件线ligature.js (注意后缀.js)

import Vue from 'Vue'
export default new Vue;

2.2、 在src/components新建A.vue

<template>
  <div>
    <h2>A组件</h2>
    <button v-on:click="spot">点一下就传</button>
  </div>
</template>
<script>
  import bus from '../assets/ligature';
  export default {
    methods: {
      spot: function() {
      //监听A组件中的spot,并发送数据
        bus.$emit("spot", ' 没想到吧!!我是A组件')
      }
    }
  }
</script>

2.3、在src/components新建B.vue

<template>
  <div>
    <h2>B组件</h2>
    <p>结果:{{msg}}</p>
  </div>
</template>
<script>
  import bus from "../assets/ligature";
  export default {
    data() {
      return {
        msg: "这TMD是默认值除非你点一下上面的按钮"
      };
    },
    mounted() {
      var _this = this;
      //监听A组件中的spot,并接受数据
      bus.$on("spot", function(msg) {
        _this.msg = msg;
      });
    }
  };
</script>
<style>
p{
  font-size: 20px;
  color: darkcyan;
}
</style>

2.4、 修改App.vue (地球),注册这两个组件,并添加这两个组件的标签

<template>
  <div id="app">
    <A/>
    <hr>
    <B/>
  </div>
</template>
<script>
import A from './components/A'
import B from './components/B'
export default {
  name: 'App',
  components: {
    A,
    B
  }
}
</script>

3、效果

效果图.gif

相关文章

  • vue2.0 兄弟组件(平级)通讯

    1、前戏吧 先看看前两篇文章:父组件传给子组件子组件传给父组件 看图 看图 看图!!! 个人理解:这明显是生活中弟...

  • 兄弟组件通讯

    eventBus 定义eventBus eventBus的原理是引入一个新的vue对象,分别调用这个对象的事件发布...

  • Vue2.0-Vue3.0语法差异性总结

    Vue2.0 Vue2.0实例 Vue2.0 组件 使用组件的细节 在 ttable > tbody > tr 使...

  • vue组件的使用

    props和$emit 组件间通讯和自定义事件 父子通讯 props $emit兄弟组件或者隔代组件使用自定义事件...

  • react 组件通讯的三种方式

    一、父子组件传值 注意:函数组件和类组件是不同的接收方式的 二、子传父通讯 三、兄弟组件通讯

  • Vue中组件通信(eventBus)

    在vue项目中,父子组件间的通讯很方便。但兄弟组件或多层嵌套组件间的通讯,就会比较麻烦。这时,使用eventBus...

  • iOS:组件化的三种通讯方案

    组件化 本文主要介绍组件化常用三种通讯方式. 常⽤的三种组件化通讯方案 组件化通信方案组件化最重要的是兄弟模块的通...

  • Vue兄弟组件通信(VueX)

    在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就...

  • vue中组件之间的通信方式?

    vue组件的通讯方式一般分为三类:父子组件,兄弟组件,跨层级组件 父子组件props on ref listene...

  • vue 非父子、子与子组件之间传值

    非父子、子与子组件之间传值是指,没有上下级关系或平级关系的组件之间的通讯传值。 下面先看一下Vue官方的介绍: 第...

网友评论

    本文标题:vue2.0 兄弟组件(平级)通讯

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