父:子组件中...">
美文网首页工作生活
Vue 父子组件通信方式

Vue 父子组件通信方式

作者: 糕糕AA | 来源:发表于2019-07-02 20:13 被阅读0次
  1. 父 --> 子:父组件中用 :xx = "this.xxx",子组件通过props来接收
  2. 子 --> 父:子组件中定义 this.$emit('eventName', data);父组件中接收:@eventName="callback"
  3. 兄弟组件传参,可以使用EventBus:相互通信的兄弟组件之中,都引入一个新的vue实例,然后通过分别调用这个实例的事件触发和监听来实现通信和参数传递。
    • 新建一个js文件,来创建出我们的eventBus,我们把它命名为bus.js ;
      import Vue from 'vue';export default new Vue();
    • 在click组件和show组件中import它:import Bus from 'common/js/bus.js';
    • 传递参数的组件中定义:Bus.$emit('getTarget', data);
    • 接收组件中定义:Bus.$on('getTarget', target => { console.log(target); });
  4. 使用vuex状态管理对数据进行统一管理
  5. 父 ->子 -> 孙:使用attrs和listeners实现祖孙组件之间的数据传递
  • 父组件用于动态数据的绑定与事件的定义
    <child1 :one="child1" :two="child2" @test1="onTest1" @test2="onTest2"></child1>
  • 子组件的写法:通过设置v-bind="attrs" 和v-on="listeners"来充当中间人
<!-- 子组件中通过v-bind='$attrs'接受数据,通过$listeners接收事件 -->
        <child2 v-bind="$attrs" v-on="$listeners"></child2>

 props: ['one','two'],  //可写可不写
    data () {
        return {
            
        }
    },
    inheritAttrs: false,  //父组件传递动态数据后,子组件的默认行为
// 当inheritAttrs设置为true时,父元素动态绑定组件的数据,子组件如果没有通过props接收的话,该属性就会附加于子组件的根元素上。什么意思看代码
    components: {
        child2    
    },
    mounted () {
        this.$emit('test1')  //触发父组件方法的一种方式
        this.$listeners.test2(123)  //触发父组件方法的另一种方式
    }
  • 孙组件写法: 通过props或者attrs和listeners来获取父组件数据和事件。
<p>props:{{one}}</p>
<p>props:{{two}}</p>
<p>$attrs: {{$attrs['one']}}</p> 

props:['one','two'],  //接收父组件传递的数据,可以不写,通过$attrs来获取
inheritAttrs: false,  //默认行为需要取消
    mounted(){
        this.$emit('test1') //触发父组件方法的一种方式
        this.$listeners.test1(123)//触发父组件方法的另一种方式
    }
  1. :star::star:vue 依赖注入:provide、inject 祖先组件和后代组件的数据传输
    祖先组件可以用 provide 给后代组件提供一些数据;后代组件可以使用 inject 接受祖先组件提供的数据
// father
provide: {
  foo: 'bar',
}

// child
inject: ['foo']

相关文章

  • Vue相关知识点

    1、vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不...

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

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

  • vue组件通信方式

    参考:vue的8种通信方式 1、$emit、props 父子组件通信(常用) 2、 ref、$refs 指向组件实...

  • Vue组件通信方式

    本文主要介绍关于Vue组件通信的四种方式,分别是父向子组件通信、子向父组件通信、非父子组件的EventBus通信、...

  • Vue如何实现组件通信?

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

  • vue父子组件之间的通信

    在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不同情况下又各有不同。最常见的就...

  • vue组件间通信的一些实用方法(VUE2.x)

    vue组件间通信的一些实用方法(VUE2.x) 一、父子组件间通信 常用的父子组件通信方法,一般涉及props和$...

  • vue.js系列三:组件间通信

    1.组件间通信基本原则 2.vue 组件间通信方式 2.1组件间通信 1: props(适用于父子组件传递属性) ...

  • vue组件如何通信?有几种方式?

    在vue中组件通讯可以分为父子组件通讯和非父子组件通信。父组件通过props的方式向子组件传递数据,而子组件可以通...

  • vue2中eventbus遇到的坑

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

网友评论

    本文标题:Vue 父子组件通信方式

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