Vue中组件间传值的方式有哪些?(清晰明了)

本文详细介绍了Vue中组件间的多种通信方式,包括props、$emit/$on、eventbus、$refs、vuex、$root、$parent、$children、provide/inject、$attrs和$listeners。这些方法覆盖了父子、兄弟以及跨层级组件的通信需求,帮助开发者更好地理解和掌握Vue应用中的数据流动。
摘要由CSDN通过智能技术生成
序号方式使用场景说明
1props父=>子(属性传参)

接收数据:子组件中props定义接收

派发数据:父组件中绑定的数据进行派发

2$emit/$on子=>父组件通信(事件传参)

接收数据:父组件调用$on/v-on

派发数据:子组件调用$emit()

3event bus

兄弟组件通信

跨层级组件通信

*自定义观察者模式Bus并挂载到根Vue

接收数据:对应组件调用$on

派发数据:对应组件调用$emit()

4$refs父子组件通信通过$refs获取子节点引起直接操作
5vuex

兄弟组件通信

跨层级组件通信

详情参考vuex中文文档
6$root兄弟组件通信

接收数据:对应组件调用根组件的$on

派发数据:对应组件调用根组件的$emit()

7$parent

父子组件通信

兄弟组件通信

接收数据:对应组件调用公共组件的$on

派发数据:对应组件调用公共组件的$emit()

8$children父子组件通信通过$children获取并查找指定子节点后直接操作
9provide/inject跨多层级组件通信

接收数据:孙辈组件通过定义inject获取数据

派发数据:父辈组件中通过定义provide设置数据

10$attrs父=>孙(非属性特定传值)

---场景1---父孙传参------------------------------------

接收数据:孙辈组件中通过props定义接收

桥接数据:子组件中通过v-bind="$attrs"展开

派发数据:父组件中绑定数据进行派发

---场景2---父子传参------------------------------------

接收数据:子组件中$attrs.xxx获取数据

派发数据:父组件中绑定数据进行派发

11$listeners孙=>父(事件传参)

---场景1---孙父传参------------------------------------

接收数据:父组件调用$on/v-on

桥接数据:子组件中通过v-bind="$listeners"展开

派发数据:子组件调用$listeners.xxx()

---场景2---子父传参------------------------------------

接收数据:父组件调用$on/v-on

派发数据:子组件调用$listeners.xxx()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值