IconButton 图标按钮
介绍
纯图标按钮,用于展示各种图标操作,如收藏、分享、删除等。
导入
js
import IconButton from '@/components/basic/IconButton.vue'用法
基础用法
图标按钮支持所有 Icon 组件中的图标,也可以传入图标 URL。
vue
<template>
<FlexRow wrap :padding="10" :gap="20">
<IconButton icon="top-filling" @click="onClick" />
<IconButton icon="download" @click="onClick" />
<IconButton icon="share" @click="onClick" />
<IconButton icon="delete" @click="onClick" />
</FlexRow>
</template>不同形状
图标按钮支持多种预设形状,包括圆形、方形等。
vue
<template>
<FlexRow wrap :padding="10" :gap="20">
<IconButton icon="top-filling" shape="round-full" @click="onClick" />
<IconButton icon="download" shape="square-full" @click="onClick" />
<IconButton icon="share" shape="round" @click="onClick" />
<IconButton icon="delete" shape="custom" borderRadius="10" @click="onClick" />
</FlexRow>
</template>不同大小
通过 size 属性可以设置图标的大小。
vue
<template>
<FlexRow wrap :padding="10" :gap="20">
<IconButton icon="top-filling" size="12" @click="onClick" />
<IconButton icon="download" size="20" @click="onClick" />
<IconButton icon="share" size="30" @click="onClick" />
<IconButton icon="delete" size="40" @click="onClick" />
</FlexRow>
</template>自定义颜色
可以自定义图标颜色和背景颜色。
vue
<template>
<FlexRow wrap :padding="10" :gap="20">
<IconButton icon="top-filling" color="#cf1818" @click="onClick" />
<IconButton icon="download" color="#61b414" @click="onClick" />
<IconButton icon="share" backgroundColor="#115e8b" color="#fff" @click="onClick" />
<IconButton icon="delete" backgroundColor="#f0f0f0" color="#666" @click="onClick" />
</FlexRow>
</template>禁用状态
通过 disabled 属性可以禁用图标按钮。
vue
<template>
<FlexRow wrap :padding="10" :gap="20">
<IconButton icon="top-filling" disabled @click="onClick" />
<IconButton icon="download" backgroundColor="#f0f0f0" color="#999" disabled @click="onClick" />
</FlexRow>
</template>API 参考
IconButton
图标按钮组件。
Props
| 名称 | 说明 | 类型 | 必填 | 默认值 |
|---|---|---|---|---|
| icon | 图标名称或URL | string | - | - |
| shape | 按钮形状预设 * round: 圆角按钮 * round-full: 圆角按钮,宽度和高度相等 * square-full: 方角按钮,宽度和高度相等 * custom: 自定义按钮形状 | 'round'|'round-full'|'square-full'|'custom' | - | 'custom' |
| buttonSize | 按钮大小。可以是一个数字,也可以是一个数组,数组的第一个元素是宽度,第二个元素是高度。 | number|((number|string)[])|string | - | - |
| backgroundColor | 按钮背景颜色 | string | - | - |
| padding | 按钮边距 | number | - | - |
| pressedBackgroundColor | 按钮按下时的背景颜色 | string | - | 'pressed.white' |
| touchable | 是否响应点击事件 | boolean | - | true |
| buttonStyle | 按钮样式 | ViewStyle | - | - |
| ... | 继承 Icon 的所有属性 | IconProps | - | - |
Slots
| 名称 | 说明 |
|---|---|
| default | 自定义内容插槽 |
Events
| 名称 | 说明 | 参数 |
|---|---|---|
| click | 点击事件 | $event |
主题变量
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| IconButtonPressedColor | string | 'pressed.white' | 按钮按下时的背景颜色 |
| IconButtonDisabledOpacity | number | 0.4 | 禁用状态下的不透明度 |
| IconButtonRoundBorderRadius | number | 50 | round形状的圆角大小 |