Vue组件通信大全

1、父传子

首先在子组件标签上绑定一个自定义属性,然后在子组件里通过props接收这个属性,props接收有两种方式分别是数组和对象形式

父传子的使用场景 封装列表的时候 把数据传到子组件渲染

2、子传父

在子组件的标签上绑定一个自定义事件,然后在子组件里通过$emit调用这个自定义事件,调用这个事件的同时把要传的数据作为参数传到父组件

子传父的使用场景:子组件中有删除等方法的时候要在子组件把下标传到父组件操作数据

3、兄弟组件传值

中央事件总线eventbus在main.js定义一个空的vue实例挂载在原型上起名$bus,通过this.$bus.$emit传数据,在要接受子组件的created钩子函数下通过$on来接收

4、vuex

把公共数据存在vuex里这样也能实现组件通信

5、本地存储

把要传递的数据存在本地存储里 再要接收的组件接收 也能实现组件通信

6、v-model

是一个语法糖 是:value和@input的合写所以说能实现组件通信

7、$attr和$listener

主要是祖孙之间传值 父组件下面有子组件a 子组件a下面又有子组件b,在父组件里还是用自定义属性和自定义事件传,在子组件a下面绑定v-bind="$attrs" v-on="$listeners"在子组件b下面通过$attrs拿数据,通过$emit调用方法

8、provide和inject

不管嵌套了几层都能拿到数据,把数据定义在provide里子组件通过inject拿到数据缺点是不响应

9、chlidren和parent

在子组件里通过$parent拿到父组件的数据和方法

在父组件里通过$children拿到子组件的数据和方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值