## Button 按钮
基础组件,触发业务逻辑时使用
### 代码示例
```html
<cvu-button type="primary" round>主要按钮</cvu-button>
```
*****
按钮类型
> 按钮类型有:默认按钮、主按钮、虚线按钮、文字按钮以及四种颜色按钮。
> 通过设置type为primary、dashed、text、info、success、warning、error创建不同样式的按钮,不设置为默认样式。
![](https://img.kancloud.cn/68/1a/681a41c8807b4e631dbf445036784041_967x191.png =600x)
```html
cvu-button>Default</cvu-button>
<cvu-button type="primary">Primary</cvu-button>
<cvu-button type="dashed">Dashed</cvu-button>
<cvu-button type="text">Text</cvu-button>
<br><br>
<cvu-button type="info">Info</cvu-button>
<cvu-button type="success">Success</cvu-button>
<cvu-button type="warning">Warning</cvu-button>
<cvu-button type="error">Error</cvu-button>
```
幽灵按钮
> 幽灵按钮将其他按钮的内容反色,背景变为透明,常用在有色背景上。
> 设置`ghost`属性
![](https://img.kancloud.cn/b0/2a/b02ac593cd50a9baa7370eb9552f5a96_1222x180.png =600x)
```html
<cvu-button type="default" ghost>Default</cvu-button>
<cvu-button type="primary" ghost>Primary</cvu-button>
<cvu-button type="dashed" ghost>Dashed</cvu-button>
<cvu-button type="text" ghost>Text</cvu-button>
<br><br>
<cvu-button type="info" ghost>Info</cvu-button>
<cvu-button type="success" ghost>Success</cvu-button>
<cvu-button type="warning" ghost>Warning</cvu-button>
<cvu-button type="error" ghost>Error</cvu-button>
```
图标按钮及按钮形状
> 通过设置icon属性在Button内嵌入一个Icon,或者直接在Button内使用Icon组件。
> 使用Button的icon属性,图标位置将在最左边,如果需要自定义位置,需使用Icon组件。
> 通过设置shape属性为circle,可将按钮置为圆的形状。
![](https://img.kancloud.cn/47/20/47203935df1f81b0750887834ac2bcf9_1153x188.png =600x)
```html
<cvu-button type="primary" icon="ios-search">search</cvu-button>
<cvu-button type="primary" shape="circle" icon="ios-search"></cvu-button>
<cvu-button type="primary" icon="ios-search">Search</cvu-button>
<cvu-button type="primary" shape="circle" icon="ios-search">Search</cvu-button>
<cvu-button type="primary" shape="circle">Circle</cvu-button>
<br><br>
<cvu-button shape="circle" icon="ios-search"></cvu-button>
<cvu-button icon="ios-search">Search</cvu-button>
<cvu-button shape="circle" icon="ios-search">Search</cvu-button>
<cvu-button shape="circle">Circle</cvu-button>
```
按钮尺寸
> 按钮有三种尺寸:大、默认(中)、小。通过设置size为large和small将按钮设置为大和小尺寸,不设置为默认(中)尺寸。
![](https://img.kancloud.cn/50/37/5037f9bd6f7a598e920fa25ec96ce0e2_1139x315.png =600x)
```html
<cvu-button size="large" type="primary">large</cvu-button>
<cvu-button size="default" type="default">default</cvu-button>
<cvu-button size="small" type="dashed">small</cvu-button>
```
长按钮
> 通过设置属性 long 可将按钮宽度设置为 100%,常用于弹窗内操作按钮。
![](https://img.kancloud.cn/bd/fa/bdfa3131e6b6371cc900460f8ac09644_1313x185.png =600x)
```html
<cvu-button type="success" long>SUBMIT</cvu-button>
<br><br>
<cvu-button type="error" long>DELETE</cvu-button>
```
不可用状态
> 通过添加disabled属性可将按钮设置为不可用状态。
![](https://img.kancloud.cn/67/de/67ded473afa6277e701825e908314b07_1046x90.png =600x)
```html
<cvu-button type="primary">Primary</cvu-button>
<cvu-button type="primary" disabled>Primary(Disabled)</cvu-button>
```
加载按钮
![](https://img.kancloud.cn/31/20/312053bf736fc17338eda03bb786f0bf_950x88.png =600x)
```html
<cvu-button type="primary">Primary</cvu-button>
<cvu-button type="primary" disabled>Primary(Disabled)</cvu-button>
<h3>加载按钮</h3>
<cvu-button type="primary" loading>Loading...</cvu-button>
<cvu-button type="primary" :loading="loading" @click="toLoading">
<span v-if="!loading">Click me!</span>
<span v-else>Loading...</span>
</cvu-button>
<cvu-button type="primary" :loading="loading2" icon="ios-power" @click="toLoading2">
<span v-if="!loading2">Click me!</span>
<span v-else>Loading...</span>
</cvu-button>
<cvu-button loading shape="circle"></cvu-button>
<cvu-button loading shape="circle" type="primary"></cvu-button>
```
跳转
> 通过设置 to 可以实现点击按钮直接跳转,支持传入 vue-router 对象。
> 设置 replace 则不会保存历史记录。
> 设置 target,会跟 a 标签一样的行为。
![](https://img.kancloud.cn/a6/09/a60996233c09a78e58787c6524f0abf6_979x80.png =600x)
```html
<cvu-button to="/modal">Modal</cvu-button>
<cvu-button to="/preview" replace>Preview</cvu-button>
<cvu-button to="/tree" target="_blank">Tree</cvu-button>
```
开启防抖(禁止规定时间内重复点击)
>[info] 设置`is-debounce`属性为`true`,设置`debounce-time`属性自定义防抖时间
```html
<cvu-button :is-debounce="true" :debounce-time="2000">防抖</cvu-button>
```
### props
| 属性 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| type | 按钮类型,可选值为`default`、`primary`、`dashed`、`text`、`info`、`success`、`warning`、`error`或者不设置 | String | default |
| ghost | 幽灵属性,使按钮背景透明 | Boolean | false |
| size | 按钮大小,可选值为`large`、`small`、`default`或者不设置 | String | default |
| shape | 按钮形状,可选值为`circle`或者不设置 | String | \- |
| long | 开启后,按钮的长度为 100% | Boolean | false |
| html-type | 设置`button`原生的`type`,可选值为`button`、`submit`、`reset` | String | button |
| disabled | 设置按钮为禁用状态 | Boolean | false |
| loading | 设置按钮为加载中状态 | Boolean | false |
| icon | 设置按钮的图标类型 | String | \- |
| custom-icon | 设置按钮的自定义图标 | String | \- |
| to | 跳转的链接,支持 vue-router 对象 | String | Object | \- |
| replace | 路由跳转时,开启 replace 将不会向 history 添加新记录 | Boolean | false |
| target | 相当于 a 链接的 target 属性 | String | \_self |
| append | 同 vue-router append | Boolean | false |
| is-debounce | 是否开启防抖 | Boolean | false |
debounce-time | 防抖时间,is-debounce属性为true时生效 | Number | 1000 |
### events
| 事件名 | 说明 | 返回值 |
| --- | --- | --- |
| click | 按钮点击事件 | $el |
### slots
| 名称 | 说明 |
| --- | --- |
| 无 | 按钮内容自定义 |
- 介绍
- 安装
- 快速上手
- 组件
- 基础
- Button 按钮
- ButtonGroup 按钮组
- 布局
- Card 卡片
- Col 列
- Collapse 折叠面板
- Divider 分割线
- Empty 空数据
- Row 行
- 导航
- Paginator 分页
- PaginatorMini 分页
- Tab 标签页
- 表单
- Cascader 级联选择
- PasswordStrength 密码强度
- Print 局部打印
- Table 表格
- Upload 文件上传
- 视图
- Calendar 日历
- Drawer 抽屉
- Loading 加载
- Message 全局提示
- Modal 对话框
- Notification 通知菜单
- Poptip 气泡提示
- Preview 图片预览
- PreviewPdf pdf文件预览
- Tooltip 文字提示
- Tree 树形控件
- 方法
- Copy 复制到剪贴板
- DescNotice 桌面消息通知
- Html2Pdf 导出pdf
- Storage 定时存储
- 其他
- BackTop 返回顶部
- NumberScroll 数字动画
- NumberZero 数字前补零
- Spin 局部加载
- Tcplayer 播放器