Skip to content

FxBtn 按钮

常用的操作按钮。自实现、不依赖任何 UI 框架,额外内置点击防抖/节流与自动 loading。

FxBtn 属于 @fx/components(UI 框架无关的通用组件)。

基础用法

使用 typeplainrounddashedcircle 来定义按钮的样式。

禁用状态

按钮不可用状态。

使用 disabled 属性来定义按钮是否可用,它接受一个 Boolean 值。

链接按钮

没有边框和背景色的链接样式按钮。使用 link 属性启用,配合 type 可设置链接按钮的主题色。

文字按钮

没有边框的文字按钮,hover 时显示浅色背景。使用 text 属性启用,配合 bg 可常驻背景色。

图标按钮

带图标的按钮可增强辨识度(有文字)或节省空间(无文字)。

使用 icon 插槽(或 icon 属性)来添加图标。自定义图标同样适用。

按钮组

以按钮组的方式出现,可用于将一系列相似的操作组合在一起。

可以使用 direction 属性控制排列方向。

使用 <FxButtonGroup> 标签来分组你的按钮。

加载状态

点击按钮来加载数据,并向用户返回加载状态。

loading 属性设置为 true 即可显示加载状态。

TIP

你可以使用 loading 插槽或 loadingIcon 属性来自定义你的加载组件。

ps:loading 插槽的优先级比 loadingIcon 更高。

不同尺寸

除了默认大小外,Button 组件还提供了几种额外的尺寸,以便在不同场景下使用。

使用 size 属性来设置 largesmall 等额外尺寸。

自定义标签

你可以自定义组件的元素标签,例如 button、div、a、router-link、nuxt-link。

自定义颜色

你可以自定义按钮颜色。

我们会自动计算 hover 颜色与 active 颜色。

color 属性可以用于 linktext 按钮。

防抖 / 节流

设置 throttle(毫秒)启用点击防抖/节流,防止重复提交(FxBtn 特有能力)。连续快速点击下面的按钮体验差异:

  • mode="debounce"(默认):连续点击只在停止 throttle ms 后触发最后一次
  • mode="throttle":第一次点击立即触发,等待时间内再次点击不会触发
  • throttle=0(默认):不启用防抖/节流

触发期间按钮自动进入 loading,冷却后恢复,与外部 :loading 取或合并。

模式Loading 表现
throttle=0不产生内部 loading,完全由外部 :loading 控制
节流模式点击后立即 loading,冷却期结束后自动取消
防抖模式连续点击期间不 loading,最后一次实际执行时才 loading

Button API

FxBtn Attributes

属性说明类型默认值
size按钮尺寸'large' | 'default' | 'small'
type按钮类型,设置 color 时以 color 为准'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | ''
plain是否为朴素按钮booleanfalse
text是否为文字按钮booleanfalse
bg是否显示文字按钮的背景色booleanfalse
link是否为链接按钮booleanfalse
round是否为圆角按钮booleanfalse
circle是否为圆形按钮booleanfalse
dashed是否为虚线按钮booleanfalse
loading是否为加载中状态booleanfalse
loading-icon自定义加载图标。字符串为 IconString 类型(即 FxIcon 图标名,如 ep:editant-design:homesvg:xxx),亦可传组件string / ComponentLoading
loading-duration加载图标旋转一圈时长,number 与纯数字字符串(如 "0.5")按秒、其余 string 原样作 CSS 时长(如 "0.5s""500ms"),对三种 loading 来源统一生效number / string1.7
disabled是否禁用booleanfalse
icon图标。字符串为 IconString 类型(即 FxIcon 图标名,如 ep:editant-design:homesvg:xxx),亦可传组件string / Component
autofocus原生 button 的 autofocus 属性booleanfalse
native-type原生 button 的 type 属性'button' | 'submit' | 'reset'button
auto-insert-space自动在两个中文字符之间插入空格(仅在文本长度为 2 且都是中文时生效)booleanfalse
color自定义按钮颜色,自动计算 hoveractive 颜色。支持 link/textstring
dark暗色模式,自动将 color 转换为暗色模式颜色booleanfalse
tag自定义元素标签string / Componentbutton
throttle防抖/节流等待时间(毫秒),0 表示不启用(FxBtn 特有)number0
mode防抖/节流模式(FxBtn 特有)'debounce' | 'throttle'debounce

FxBtn Slots

名称说明
default自定义默认内容
loading自定义加载组件
icon自定义图标组件

FxBtn Exposes

名称说明类型
ref按钮 html 元素Ref<HTMLButtonElement>
size按钮尺寸ComputedRef<'' | 'small' | 'default' | 'large'>
type按钮类型ComputedRef<'' | 'default' | 'primary' | 'success' | 'warning' | 'info' | 'danger'>
disabled按钮是否禁用ComputedRef<boolean>
shouldAddSpace是否在两个中文字符之间加空格ComputedRef<boolean>

ButtonGroup API

FxButtonGroup Attributes

属性说明类型默认值
size控制组内按钮尺寸'large' | 'default' | 'small'
type控制组内按钮类型'primary' | 'success' | 'warning' | 'danger' | 'info'
direction排列方向'horizontal' | 'vertical'horizontal

FxButtonGroup Slots

名称说明子标签
default自定义按钮组内容Button