美文网首页
vue兄弟组件通信

vue兄弟组件通信

作者: 泡泡糖_966c | 来源:发表于2019-12-18 11:32 被阅读0次

vue 兄弟组件之间的传值

一. 子传父,父传子。

二.

1、兄弟之间传递数据需要借助于事件车,通过事件车的方式传递数据

2、创建一个Vue的实例,让各个兄弟共用同一个事件机制。

3、传递数据方,通过一个事件触发bus.$emit(方法名,传递的数据)。

4、接收数据方,通过mounted(){}触发bus.$on(方法名,function(接收数据的参数){用该组件的数据接收传递过来的数据}),此时函数中的this已经发生了改变,可以使用箭头函数。

实例如下:

我们可以创建一个单独的js文件eventVue.js,内容如下

import Vue from 'vue'

export default new Vue

假如父组件如下:

<template>

    <components-a></components-a>

    <components-b></components-b>

</template>

子组件a如下:

<template>

      <div class="components-a">

          <button @click="abtn">A按钮</button>

      </div>

</template>

<script>

import eventVue from '../../js/event.js'

export default {

      name: 'app',

      data () {

        return {

                ‘msg':"我是组件A"

        }

      },

      methods:{

          abtn:function(){

                  eventVue .$emit("myFun",this.msg)  //$emit这个方法会触发一个事件

          }

      }

}

</script>

子组件b如下:

<template>

    <div class="components-a">

        <div>{{btext}}</div>

    </div>

</template>

<script>

import eventVue from '../../js/event.js'

export default {

  name: 'app',

  data () {

        return {

          'btext':"我是B组件内容"

        }

  },

  created:function(){

      this.bbtn();

  },

  methods:{

      bbtn:function(){

            eventVue .$on("myFun",(message)=>{  //这里最好用箭头函数,不然this指向有问题

                this.btext = message     

            })

      }

    }

}

</script>

这样在子组件a里面点击函数就可以改变兄弟组件b里面的值了。

实际运用二(推荐):

当然也可以直接将Bus注入到Vue根对象中,

import Vue from 'vue'const Bus =new Vue()varapp=new Vue({

    el:'#app',   data:{

    Bus

    }

})

在子组件中通过this.$root.Bus.$on(),this.$root.Bus.$emit()来调用

相关文章

  • vue 组件通信方式 ,父子、隔代、兄弟 三类通信,六种方法

    Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说...

  • Vue如何实现组件通信?

    Vue组件通信的三种情况: 父子通信 爷孙通信 兄弟通信 父子通信:父组件使用Prop向子组件传递数据,子组件通过...

  • Vue组件通信

    Vue组件通信 Vue组件关系可分为三大类: 父子组件 兄弟组件 跨级组件, 相应的组件之间的通信也分类三大类: ...

  • Vue组件通信

    总体来说,Vue中组件之间的通信场景如下图: 可以将其分为父子组件通信、兄弟组件通信、跨级组件通信。 1. 自定义...

  • vue2中eventbus遇到的坑

    前言 vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数...

  • Vue事件总线(EventBus)使用详细介绍

    前言 vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数...

  • Vue事件总线(EventBus)

    vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过props向下传数据给子组件...

  • VUE - EventBus

    vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数据给子...

  • 老生常谈——vue组件之间通信

    老生常谈的组件之间通信 vue组件之间的通信细分为三种情况:兄弟组件之间的通信,父组件向子组件传递数据,子组件向父...

  • vue事件总线EventBus

    vue组件有父子组件通信:props兄弟组件通信:可以使用vuex,还可以使用事件总线eventBus 使用方法:...

网友评论

      本文标题:vue兄弟组件通信

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