vue组件绑定属性,(透传篇)

这里我不赘述具体如何使用以及细节,       
一。vue2和vue3透传的区别
首先,透传就是我们在组件身上绑定的属性(注意必须是组件身上的属性,而不是原生dom身上),这个属性没有通过props或者emit在子组件中进行注册通信,就像暗恋一样,明明我那么喜欢你,你却........(不知道🤣🤣🤣)
好吧,其实子组件也是知道有这个属性的(终究还是没有被辜负😁😁)。那么我们如何使用这个透传的属性呢
 vue2中:
1.用法: 透传的属性如果想要使用,我们必须显性的调用this.$attrs来获取属性的key/值(毕竟只是暗恋,不是正房🙄🙄),那么他能接收到哪些属性呢?我实测了一下,只有props(唉,连视频都不能打。只能留言,就像他心里可有可无的风🤡🤡🤡)
2.优点:无,非常鸡肋😢😢
3.缺点:不能接收class,style,原生事件,如,onclick,keydown、keypress、keyup等等,你所能想到的一切原生事件,总之就是废废废........🤬🤬🤬
4.业务场景:客户要求登录页面,用回车触发登录,而你使用的却是el-input组件,于是你查编了官方文档发现并没有keyup.enter这个事件绑定,正当年你准备去改源码的时候,鱿鱼吸掏出了这个keyup.enter.native修饰符,帮我们解决了这个棘手的问题
他允许我们把原生事件绑定到组件的根元素上,(记住只能是根元素哦,还有这个修饰符只能用在组件上)。这样就可以触发回车事件了😉
 vue3中:
1.用法:  setup语法中,使用useAttrs() 接收数据,vue3中进一步强化了透传属性的支持面,他支持的属性有,props,emit,style,class,所有的原生事件,如onclick,keydown、keypress、keyup
2.优点:可以在父组件中为子组件添加样式和原生事件😋😋😋😋
3.缺点:接收到的props和emits需要你在子组件注册才能激活使用,但是props,emit,style,class,和所有的原生事件,则会自动绑定到子组件的根标签上,(我的发,这也太方便了吧,注意如果你的组件是一个嵌套的多层根组件,那么就会一直往下传👀👀)
    停止向下级根组件透传的方法,可以去官方文档查看
4.业务场景:客户要求登录页面,用回车触发登录,而你使用的却是el-input-plus组件,于是你查编了官方文档发现并没有keyup.enter这个事件绑定,正当年你准备去改源码的时候,你发现,你直接在el-input上绑定@keyup.enter ,就可以触发回车事件了
再也不用什么.native修饰符了。甚至在父组件中可以为子组件写内联样式😍😍(所以这个native唯一的用途也被代替了,于是Vue3把这个native修饰符永久去掉了😎😎😎😎😎)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值