Skip to content

FxBtn 按钮 ​

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

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

基础用法 ​

使用 type、plain、round、dashed 和 circle 来定义按钮的样式。

禁用状态 ​

按钮不可用状态。

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

链接按钮 ​

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

文字按钮 ​

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

图标按钮 ​

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

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

按钮组 ​

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

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

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

加载状态 ​

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

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

TIP

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

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

不同尺寸 ​

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

使用 size 属性来设置 large、small 等额外尺寸。

自定义标签 ​

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

自定义颜色 ​

你可以自定义按钮颜色。

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

color 属性可以用于 link 与 text 按钮。

防抖 / 节流 ​

设置 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:edit、ant-design:home、svg:xxx),亦可传组件string / ComponentLoading
loading-duration加载图标旋转一圈时长,number 与纯数字字符串(如 "0.5")按秒、其余 string 原样作 CSS 时长(如 "0.5s"、"500ms"),对三种 loading 来源统一生效number / string1.7
disabled是否禁用booleanfalse
icon图标。字符串为 IconString 类型(即 FxIcon 图标名,如 ep:edit、ant-design:home、svg:xxx),亦可传组件string / Component—
autofocus原生 button 的 autofocus 属性booleanfalse
native-type原生 button 的 type 属性'button' | 'submit' | 'reset'button
auto-insert-space自动在两个中文字符之间插入空格(仅在文本长度为 2 且都是中文时生效)booleanfalse
color自定义按钮颜色,自动计算 hover 和 active 颜色。支持 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