基础按钮组件,支持多种样式变体和尺寸,内置加载状态支持。
<template>
<FaButton>默认按钮</FaButton>
<FaButton variant="destructive">危险按钮</FaButton>
<FaButton variant="outline">边框按钮</FaButton>
</template>| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
variant | 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'expand' | 'default' | 按钮样式变体 |
size | 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg' | 'default' | 按钮尺寸 |
disabled | boolean | false | 是否禁用 |
loading | boolean | false | 是否显示加载状态 |
class | HTMLAttributes['class'] | - | 自定义 CSS 类 |
| 名称 | 说明 |
|---|---|
default | 按钮内容(图标、文字等) |
无
<template>
<FaButton>默认</FaButton>
<FaButton variant="secondary">次要</FaButton>
<FaButton variant="destructive">危险</FaButton>
<FaButton variant="outline">边框</FaButton>
<FaButton variant="ghost">幽灵</FaButton>
<FaButton variant="link">链接</FaButton>
</template><template>
<FaButton size="sm">小按钮</FaButton>
<FaButton>默认尺寸</FaButton>
<FaButton size="lg">大按钮</FaButton>
<FaButton size="icon"><FaIcon name="i-lucide:search" /></FaButton>
<FaButton size="icon-sm"><FaIcon name="i-lucide:search" /></FaButton>
<FaButton size="icon-lg"><FaIcon name="i-lucide:search" /></FaButton>
</template><script setup lang="ts">
const loading = ref(false)
function handleClick() {
loading.value = true
setTimeout(() => {
loading.value = false
}, 2000)
}
</script>
<template>
<FaButton :loading="loading" @click="handleClick">
{{ loading ? '加载中...' : '点击加载' }}
</FaButton>
</template><template>
<FaButton disabled>禁用按钮</FaButton>
<FaButton :disabled="true" variant="outline">禁用边框按钮</FaButton>
</template><template>
<FaButton>
<FaIcon name="i-lucide:plus" />
添加
</FaButton>
<FaButton size="icon">
<FaIcon name="i-lucide:search" />
</FaButton>
</template>loading 为 true 时,按钮会自动显示旋转加载图标并禁用点击size="icon":正方形按钮 (36px),适合放置纯图标size="icon-sm":小号正方形按钮 (32px)size="icon-lg":大号正方形按钮 (40px)default:主操作按钮secondary:次要操作destructive:删除、危险操作outline:边框样式,用于低优先级操作ghost:幽灵按钮,用于更次要的操作link:链接样式expand:展开动画效果按钮