按钮是用来监听用户点击动作,以触发业务逻辑回调的组件。
用例
按钮类型
按钮组件有三种类型:默认按钮(default),主按钮(primary),文本按钮(text)。
按钮状态
按钮拥有三种状态:danger
、loading
、disabled
。
danger
状态表示危险操作。
loading
状态表示异步等待,仍然可以监听点击动作。
diabled
状态表示禁止操作,不可监听点击动作。
show code
<template>
<Flex gap="16px" flow="column">
<Flex>
<Button>默认状态</Button>
<Button danger>危险警示</Button>
<Button loading>加载状态</Button>
<Button disabled>禁用状态</Button>
</Flex>
<Flex>
<Button type="primary">默认状态</Button>
<Button type="primary" danger>危险警示</Button>
<Button type="primary" loading>加载状态</Button>
<Button type="primary" disabled>禁用状态</Button>
</Flex>
<Flex>
<Button type="text">默认样式</Button>
<Button type="text" danger>危险警示</Button>
<Button type="text" loading>加载状态</Button>
<Button type="text" disabled>禁用状态</Button>
</Flex>
</Flex>
</template>
<script>
import { defineComponent } from 'vue'
import { Flex, Button } from 'comz'
export default defineComponent({
components: {
Flex,
Button
}
})
</script>
图标按钮
配合 Icon
组件可以在按钮内添加图标。
show code
<template>
<Flex gap="16px" flow="column">
<Flex>
<Button>
<Flex gap="4px">
<Icon><EmojiSmileFill /></Icon>Smile
</Flex>
</Button>
<Button>
<Flex gap="4px">
<Icon><Gem /></Icon>Gem<Icon><Gem /></Icon>
</Flex>
</Button>
<Button>
<Flex gap="4px">
Heart<Icon><HeartFill /></Icon>
</Flex>
</Button>
</Flex>
<Flex>
<Button type="primary">
<Flex gap="4px">
<Icon><EmojiSmileFill /></Icon>Smile
</Flex>
</Button>
<Button type="primary">
<Flex gap="4px">
<Icon><Gem /></Icon>Gem<Icon><Gem /></Icon>
</Flex>
</Button>
<Button type="primary">
<Flex gap="4px">
Heart<Icon><HeartFill /></Icon>
</Flex>
</Button>
</Flex>
<Flex>
<Button type="text">
<Flex gap="4px">
<Icon><EmojiSmileFill /></Icon>Smile
</Flex>
</Button>
<Button type="text">
<Flex gap="4px">
<Icon><Gem /></Icon>Gem<Icon><Gem /></Icon>
</Flex>
</Button>
<Button type="text">
<Flex gap="4px">
Heart<Icon><HeartFill /></Icon>
</Flex>
</Button>
</Flex>
</Flex>
</template>
<script>
import { defineComponent } from 'vue'
import { Flex, Button, Icon } from 'comz'
import { EmojiSmileFill, Gem, HeartFill } from '@comz/icons'
export default defineComponent({
components: {
Flex,
Button,
Icon,
EmojiSmileFill,
Gem,
HeartFill
}
})
</script>
API
属性
Attribute | Type | Default | Description |
---|
type | 'default' | 'primary' | 'text' | 'default' | 按钮类型 |
danger | boolean | false | 设置为危险状态 |
loading | boolean | false | 是否处于加载状态 |
disabled | boolean | false | 是否处于禁用状态 |
事件
Event | Type | Description |
---|
on-click | () => void | 监听点击事件 |
插槽
Slot | Description |
---|
default | 默认插槽 |