vue不同组件间的通信

Posted sujianfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue不同组件间的通信相关的知识,希望对你有一定的参考价值。

  不同组件间通信可以通过新建一个对象充当通信对象来实现。

  1.新建一个对象A

    2.在组件B中引入A对象, A.$emit(‘addShopCart‘,5);  5是传给回调函数的参数。

  3.在组件C中引入A对象,A.$on(‘addShopCart‘,function(num){....})

    B组件中发出一个名叫addShopCart的包裹,包裹里装着机密数字5,C组件说出了包裹名‘addShopCart‘,所以拿到了包裹,并且可以对数字五进行进一步的处理。

    具体代码如下

  1.新建一个名为connect.js的文件

1 import Vue from ‘vue‘;
2 let connect = new Vue();
3 export default connect;

        2.在组件B中引入A对象, A.$emit(‘addShopCart‘,5);

 1 import connect from ‘../common/connet.js‘
 2     export default {
 3         data(){
 4             return {
 5                 num:1,                
 6             }
 7         },
 8         methods:{
 9             addShopCart(){
10                 connect.$emit(‘addShopCart‘,this.num);           
11             },
12         },
13     }

  3.在组件C中引入A对象,A.$on(‘addShopCart‘,function(num){....})

import connect from ‘./components/common/connet.js‘;
    export default{
        data(){
            return{
               picNum:0,
            }
        },
        created(){
           connect.$on(‘addShopCart‘,num=>{
               this.picNum += num;
           })
        },
    }

 

以上是关于vue不同组件间的通信的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件间的通信方式(多种场景,通俗易懂,建议收藏)

vue中使用bus进行组件间的通信

vue组件间的通信之pubsub-js

vue组件之间的通信

vue组件之间的通信, 父子组件通信,兄弟组件通信

vue中组件间通信的6种方式