【Vue3+Ts+Vite】二次封装ElementPlus button按钮loading处理组件

新建组件

<template>
  <el-button :loading="loading" v-bind="props" @click="handleClick">
    <slot></slot>
  </el-button>
</template>

<script setup lang="ts">
  import { ButtonGroupProps } from 'element-plus/es/components/button/src/button-group.mjs'

  defineOptions({
    inheritAttrs: false
  })
  const props = defineProps<Omit<ButtonGroupProps, 'loading'>>()
  const attrs = useAttrs()

  const loading = ref(false)
  const handleClick = async () => {
    loading.value = true
    try {
      await (attrs as any)?.onClick?.()
    } finally {
      loading.value = false
    }
  }
</script>

页面使用

import ELButton from '@/components/ELButton/index.vue'

<ELButton type="primary" @click="loadingClick">点击loading</ELButton>

在这里插入图片描述
感谢你的阅读,如对你有帮助请收藏+关注!
只分享干货实战精品从不啰嗦!!!
如某处不对请留言评论,欢迎指正~
博主可收徒、常玩QQ飞车,可一起来玩玩鸭~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

★雨 潇★

谢谢您的鼓励,我会继续努力的~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值