Vue同级(兄弟)组件间数据的传递

同级(兄弟)组件间不能直接传递数据,需要建立一个类似桥梁的载体去实现。

1、定义一个公共文件public.js,创建位置工程src目录下与main.js同级(代码内容是创建一个空的vue实例):

import Vue from 'vue'
export default new Vue()

 2、创建好以后,同级(兄弟)组件分别引入public.js这个文件:

import Public from '../public.js'

 3、例如现在有A.vueB.vue两个同级(兄弟)组件,假设A.vue组件发送数据,通过$emit将事件和参数'传递'给B.vue(实际上是传递数据到public.js内):

price(newPrice){
    Public.$emit('xx',(yy,zz))		//xx:定义传参,yy:所要传递的数据 zz:所要传递的数据
} 

 

 

4、在B.vue组件里接收数据,通过$on将事件和数据从A.vue接收过来:

Public.$on("xx", val=> {
    this.插值语句中需要渲染的变量名 = val
});

一般大型的项目,推荐使用Vuex(状态管理器)来管理组件之间的通信。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值