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;
           })
        },
    }

 

转载于:https://www.cnblogs.com/sujianfeng/p/8915645.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值