vue3中的useAttrs和props的区别

在vue3中, 提供了一个 useAttrs 的方法

它接收到的参数一 prop中可以接收到的数据是基本一样的

如果我们想自已写一个组件, 把 elementPlus 中的期中一个组件封装一下。

可以这样做

1.新建一个 自定义组件 myBtnCom

js 复制代码
<template>
  <div class="mybuttonwrapper">
    <el-button :="$attrs">Success</el-button>
  </div>
</template>
<script setup>
</script>

从上面的代码中, 我们可以在代码中直接使用 $attrs 来接收所有的属性

也可以使用 useAttrs 函数

import { useAttrs } from "vue";

let $attrs = useAttrs();

父组件中

js 复制代码
<template>
  <div class="home-wrapper">Home</div>
  <el-button type="success" color="hotpink"  round @click="changeSuccess">{{suctext}}</el-button>
  <myBtnCom  type="success" color="hotpink" round></myBtnCom>
</template>

在myBtnCom 设置的属性和 elementPlus中的button的属性是一样的, 传到组件内部 ,就可以封装一个和 elementPlus 用法一样的组件了
注意: 我们可以使用 useAttrs 接收到组件中传递的属性, 同样我们也可以使用 defineProps来接收, 但是如果我们使用 defineProps 接收过的属性, 会要useAttrs 中消失, 这个特性要注意一下

相关推荐
Ticnix4 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人7 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl11 分钟前
OpenClaw 深度技术解析
前端
崔庆才丨静觅14 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人22 分钟前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼26 分钟前
shadcn/ui,给你一个真正可控的UI组件库
前端
布列瑟农的星空29 分钟前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
Mr Xu_35 分钟前
Vue 3 中计算属性的最佳实践:提升可读性、可维护性与性能
前端·javascript
jerrywus41 分钟前
我写了个 Claude Code Skill,再也不用手动切图传 COS 了
前端·agent·claude
玖月晴空1 小时前
探索关于Spec 和Skills 的一些实战运用-Kiro篇
前端·aigc·代码规范