$attrs 和 $listeners

通常情况下,父子组件之间的数据是通过 props 由父向子传递的,当子组件想要修改数据时,则需要通过 $emit 以事件形式交由父组件完成,而这种交互方式只存在于父子组件之间,多层嵌套的时候,处于内层的组件想要获取外层的数据时,需要外层组件一层一层地将数据向下传递;同理,当内层组件想要修改数据时,也需要将事件一层一层向上传递。

当外层组件向最终接收组件传递数据时,中间经过的每个组件都需要定义 props 去接收并向下传递,这种做法肯定是不太合理的,不仅代码冗余了,而且对于中间不需要数据的组件来说,定义自身不需要的 props 也是一种污染;同理,将事件一层一层向上传递也是不太合理的。

我们都知道,任何单页应用中的组件间都不可能只有简单的父子关系,如果有,说明这个应用并不需要做成单页应用。

那么如何才能减少(或避免)这种情况的发生呢?Vue 中提供了 $attrs 和 $listeners。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值