vue3_硅谷甄选_useAttrs获取所有属性和事件

useAttrs方法

在vue3当中提供了useAttrs方法,可以获取到子组件的属性和事件;

image-20240825015251465

element-plus就是element-ui的升级版本,在vue3的框架当中去使用;

image-20240825015351840

需求

我们想要将element-plus当中已经有的el-button组件进行二次封装;

在这个基础上,学习一下useAttrs方法;

image-20240825015453667

image-20240825015600484

el-button组件身上有很多的属性和事件;

image-20240825020533770

这是element-ui提供的图标组件;

image-20240825020604744

image-20240825020613362

这就是图标的效果;

需求

我想要自己封装一个组件,将他们的el-button按钮进行二次封装;

还要加一个需求,鼠标放上去的时候,有一个文字的指示;

自己封装一个组件

image-20240825020844902

image-20240825020928607

我希望做到的是我们自己封装的HintButton,这里头的属性和事件,都要和el-button都是一样的;

image-20240825021555001

那么理论上,我们应该在子组件内部,使用上述的写法,来进行属性的接收;

但是你可以不用props去接收属性,可以使用vue3使用useAttrs来接收;


image-20240825021933512

import {useAttrs} from 'vue'
let $attrs = useAttrs();
console.log($attrs);

useAttrs是一个方法,方法的返回值是一个对象,我们可以看到:

image-20240825022056188

所以useAttrs就类似props,所以也算是一种组件通信方式之一;

那么属性的写法,我们就可以使用下面的方式:

image-20240825022304516

我们也可以使用下面的,更为直接的写法

image-20240825022408310

效果如上所示;

语法讲解

image-20240825022516722

image-20240825022528606

上面两张图当中的,语法的效果是一样的;

需求回顾

我希望做到的效果,就是对于el-button进行二次封装,当我的鼠标悬浮这个按钮的时候,会有一个提示;

提示就是文字提示的;

image-20240825022903441

image-20240825022948424

image-20240825022957589

这样你的鼠标放上去的时候,就有上述的提示了;

注意点

props和useAttrs方法都是可以接收父组件传递过来的属性和属性值,但是props接收了之后useAttrs方法就获取不到了;

其实useAttrs方法很类似vue2当中,组件实例身上的$attrs属性;

useAttrs比vue2的$attrs强大在可以捕捉事件

image-20240825055123812

说明

useAttrs方法也算是组件通信方式之一的,有点类似于props;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值