Skip to content

Button 按钮

按钮组件的根节点是一个 uni-app<button> 标签,是对 uni-app <button> 组件的二次封装。

默认样式

按钮默认高度为 45px,宽度为 auto,背景为 var(--hi-background-default),圆角为 3px,内边距为 0 16px,默认无边框。

按钮文本

通过 text 属性设置按钮文本。

vue
<hi-button text="一个按钮" />

或者通过默认插槽设置文本。

vue
<hi-button>一个按钮</hi-button>

按钮边框

按钮默认无边框,通过 border 属性设置边框。

  • 默认边框宽度为:1px
  • 默认边框颜色为:currentColor
  • 默认边框类型为:solid
vue
<hi-button text="边框按钮" border />

可通过 borderWidthborderColorborderStyle 属性设置边框样式。

按钮主题

通过 theme 属性设置按钮主题。

vue
<hi-button text="主要主题按钮" theme="primary" />
<hi-button text="成功主题按钮" theme="success" />
<hi-button text="警告主题按钮" theme="warning" />
<hi-button text="错误主题按钮" theme="error" />
<hi-button text="信息主题按钮" theme="info" />

提示

设置按钮主题时,按钮的文本颜色会自动设置为 #ffffff,如果需要修改,可以通过 color 属性设置。

镂空按钮

通过 plain 属性设置镂空按钮。
按钮设置为镂空后,按钮的背景会自动设置为 transparent,如果需要修改,可以通过 bg 属性设置。
同时按钮镂空时会默认显示边框。

vue
<hi-button text="默认镂空" plain />
<hi-button text="主题镂空" plain theme="primary" />

浅化背景

通过 tint 属性设置浅化背景。
浅化背景即是:为按钮的背景设置透明度,默认为 0.2 透明度。

vue
<hi-button text="默认浅化" tint />
<hi-button text="主题浅化" tint theme="primary" />

禁用状态

通过 disabled 属性将按钮设置为禁用状态。

vue
<hi-button text="禁用按钮" disabled theme="primary" />

loading 状态

通过 loading 属性将按钮设置加载状态。
通过 loadingText 属性设置加载时的文本。

vue
<template>
    <hi-button text="加载按钮" loadingText="正在提交..." :loading="loading" theme="primary" @click="handleClick" />
</template>

<script setup>
    import { ref } from 'vue';

    // 按钮 loading 状态
    const loading = ref(false);

    // 按钮点击事件
    function handleClick() {
        loading.value = true;

        // 模拟提交
        setTimeout(() => {
            loading.value = false
        }, 3000);
    }
</script>

提示

按钮 loading 时,按钮同时也会被禁用。

按钮图标

为了方便使用,<hi-button> 设计了一个前置图标和一个后置图标,通过 leftIconrightIcon 属性设置前置图标和后置图标。

vue
<hi-button text="前置图标" leftIcon="__gonggao" theme="primary"></hi-button>
<hi-button text="后置图标" rightIcon="__fuzhi" theme="primary"></hi-button>

圆角按钮

通过 round 属性设置按钮为圆角按钮。

vue
<hi-button text="圆角按钮" round theme="primary"></hi-button>

圆形按钮

通过 circle 属性设置按钮为圆形按钮。

vue
<hi-button text="圆形按钮" circle theme="primary"></hi-button>

提示

圆形按钮的宽度自动等于按钮的高度。

块级按钮

通过 block 属性设置按钮为块级元素,即宽度为 100% 的按钮。

vue
<hi-button text="块级按钮" block theme="primary"></hi-button>

链接按钮

通过 link 属性设置按钮为链接按钮。
通过 underline 设置是否显示下划线。
链接按钮的 padding0,宽度和高度为 auto,背景透明。

vue
<hi-button text="链接按钮" link theme="primary"></hi-button>
<hi-button text="带下划线的链接按钮" link underline theme="primary"></hi-button>

按钮防抖

通过 debounce 属性设置按钮防抖。默认开启。
通过 time 属性可以设置防抖时间。单位毫秒,默认为 800
通过 tips 属性可以设置防抖提示。为空时不提示。

vue
<hi-button text="提交订单" debounce time="1000" tips="点击的太快啦" theme="primary"></hi-button>

按钮副文字

通过 subText 属性设置按钮副文字。

vue
<hi-button text="提交订单" subText="副文字" theme="primary"></hi-button>

Props

属性名说明类型默认值可选值版本
hover指定按下去的样式类Stringhi-hover--
text按钮文本String---
disabled是否禁用Booleanfalsetrue-
theme按钮的主题String-参考-
plain是否镂空按钮Booleanfalsetrue-
tint是否浅化背景Booleanfalsetrue-
tintOpacity浅化背景透明度[String, Number]0.2--
fontSize文字大小String---
color文字颜色String---
width按钮宽度String---
height按钮高度String---
radius圆角大小String---
bg背景String---
border是否显示边框Booleanfalsetrue-
borderWidth边框宽度String---
borderColor边框颜色String---
borderStyle边框类型String---
round是否为圆角按钮Booleanfalsetrue-
circle是否为圆形按钮Booleanfalsetrue-
block是否为块级元素Booleanfalsetrue-
link是否为链接按钮Booleanfalsetrue-
underline是否显示下划线Booleanfalsetrue-
iconSize图标大小String---
iconColor图标颜色String---
debounce是否开启防抖Booleantruefalse-
time防抖时间[Number, String]800--
tips防抖提示String---
loading是否为加载状态Booleanfalsetrue-
loadingText加载时的提示文本String---
loadingIcon加载图标String__loading--
leftIcon前置图标String---
rightIcon后置图标String---
subText副文本String---
subColor副文本颜色String---
subFontSize副文本大小String---
formType表单提交类型String-参考-
openType开放能力String-参考-
hoverStartTime按住后多久出现点击态,单位毫秒Number20参考-
hoverStayTime手指松开后点击态保留时间,单位毫秒Number70参考-
appParameter打开 APP 时,向 APP 传递的参数String-参考-
hoverStopPropagation指定是否阻止本节点的祖先节点出现点击态Booleanfalse参考-
lang指定返回用户信息的语言Stringzh_CN参考-
sessionFrom会话来源String-参考-
sendMessageTitle会话内消息卡片标题String-参考-
sendMessagePath会话内消息卡片点击跳转小程序路径String-参考-
sendMessageImg会话内消息卡片图片String-参考-
showMessageCard是否显示会话内消息卡片Booleanfalse参考-
groupId打开群资料卡时,传递的群号String-参考-
guildId打开群资料卡时,传递的群号String-参考-
publicId打开公众号资料卡时,传递的号码String-参考-
dataImId客服的抖音号String-参考-
dataImTypeIM卡片类型String-参考-
dataGoodsId商品的idString-参考-
dataOrderId订单的idString-参考-
dataBizLine商品类型String-参考-

Event

事件名说明回调参数版本
click组件点击事件--
getphonenumber获取用户手机号的回调参考-
getuserinfo获取用户信息的回调参考-
error当使用开放能力时,发生错误的回调参考-
opensetting在打开授权设置页并关闭后回调参考-
launchapp从小程序打开 App 成功的回调参考-
contact客服消息回调参考-
chooseavatar获取用户头像回调参考-
agreeprivacyauthorization用户同意隐私协议事件回调参考-
addgroupapp添加群应用的回调参考-
chooseaddress调起用户编辑并选择收货地址的回调参考-
chooseinvoicetitle用户选择发票抬头的回调参考-
subscribe订阅消息授权回调参考-
login登录回调参考-
im监听跳转IM的成功回调参考-

Slots

名称说明参数版本
default文本内容插槽--

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-button-positionrelative-
--hi-button-displayinline-flex / flex-
--hi-button-align-itemscenter-
--hi-button-justify-contentcenter-
--hi-button-colorinherit-
--hi-button-font-sizeinherit-
--hi-button-border-radius3px-
--hi-button-backgroundvar(--hi-background-default)-
--hi-button-margin0-
--hi-button-padding0 16px-
--hi-button-gap3px-
--hi-button-line-heightinherit / 1.25-
--hi-button-widthauto / 100%-
--hi-button-height45px-
--hi-button-border-width0 / 1px-
--hi-button-border-stylesolid-
--hi-button-border-colorcurrentColor-
--hi-button-after-display100%-
--hi-icon-image-height100%-
--hi-button-text-displayflex-
--hi-button-text-flex-directioncolumn-
--hi-button-text-justify-contentcenter-
--hi-button-text-aligncenter-
--hi-button-sub-text-font-size0.7em-
--hi-button-sub-text-colorinherit-
--hi-button-icon-font-size1.15em-
--hi-button-icon-colorinherit-
--hi-button-background-opacity0.2-
--hi-button-text-decorationunderline-

基于 MIT 许可发布