Button 按钮
常用的操作按钮。
基础用法
使用 type、plain、round 和 circle 属性来定义按钮的样式。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton>默认按钮</NButton>
<NButton type="primary">主要按钮</NButton>
<NButton type="success">成功按钮</NButton>
<NButton type="warning">警告按钮</NButton>
<NButton type="danger">危险按钮</NButton>
<NButton type="info">信息按钮</NButton>
</div>
</template>朴素按钮
设置 plain 属性可以得到朴素按钮。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton plain>朴素按钮</NButton>
<NButton type="primary" plain>主要按钮</NButton>
<NButton type="success" plain>成功按钮</NButton>
<NButton type="warning" plain>警告按钮</NButton>
<NButton type="danger" plain>危险按钮</NButton>
<NButton type="info" plain>信息按钮</NButton>
</div>
</template>圆角按钮
设置 round 属性可以得到圆角按钮。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton round>圆角按钮</NButton>
<NButton type="primary" round>主要按钮</NButton>
<NButton type="success" round>成功按钮</NButton>
<NButton type="warning" round>警告按钮</NButton>
<NButton type="danger" round>危险按钮</NButton>
<NButton type="info" round>信息按钮</NButton>
</div>
</template>圆形按钮
设置 circle 属性可以得到圆形按钮。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton circle>搜</NButton>
<NButton type="primary" circle>添</NButton>
<NButton type="success" circle>✓</NButton>
<NButton type="warning" circle>!</NButton>
<NButton type="danger" circle>删</NButton>
</div>
</template>禁用状态
设置 disabled 属性来禁用按钮。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton disabled>默认按钮</NButton>
<NButton type="primary" disabled>主要按钮</NButton>
<NButton type="success" disabled>成功按钮</NButton>
<NButton type="warning" disabled>警告按钮</NButton>
<NButton type="danger" disabled>危险按钮</NButton>
<NButton type="info" disabled>信息按钮</NButton>
</div>
</template>加载中
设置 loading 属性来显示加载状态。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton loading>加载中</NButton>
<NButton type="primary" loading>加载中</NButton>
</div>
</template>按钮尺寸
使用 size 属性来设置按钮大小。
vue
<template>
<div style="display: flex; gap: 12px; align-items: center;">
<NButton size="large">大型按钮</NButton>
<NButton>默认按钮</NButton>
<NButton size="small">小型按钮</NButton>
</div>
</template>块级按钮
设置 block 属性可以让按钮占据父容器的全部宽度。
vue
<template>
<div style="width: 300px;">
<NButton type="primary" block>块级按钮</NButton>
</div>
</template>文字按钮
设置 text 属性可以得到文字按钮。
vue
<template>
<div style="display: flex; gap: 12px;">
<NButton text>文字按钮</NButton>
<NButton type="primary" text>主要文字</NButton>
<NButton type="success" text>成功文字</NButton>
</div>
</template>带背景色的按钮
设置 bg 属性可以让按钮在朴素模式下也有背景色。
vue
<template>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<NButton type="primary" plain bg>主要按钮</NButton>
<NButton type="success" plain bg>成功按钮</NButton>
<NButton type="warning" plain bg>警告按钮</NButton>
<NButton type="danger" plain bg>危险按钮</NButton>
</div>
</template>按钮类型
使用 nativeType 属性来设置按钮的原生类型。
vue
<template>
<div style="display: flex; gap: 12px;">
<NButton nativeType="button">Button</NButton>
<NButton nativeType="submit">Submit</NButton>
<NButton nativeType="reset">Reset</NButton>
</div>
</template>API
Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| type | 按钮类型 | 'primary' | 'success' | 'warning' | 'danger' | 'info' | '' | '' |
| size | 按钮尺寸 | 'large' | 'default' | 'small' | 'default' |
| plain | 是否为朴素按钮 | boolean | false |
| round | 是否为圆角按钮 | boolean | false |
| circle | 是否为圆形按钮 | boolean | false |
| disabled | 是否禁用 | boolean | false |
| loading | 是否加载中 | boolean | false |
| block | 是否为块级按钮 | boolean | false |
| text | 是否为文字按钮 | boolean | false |
| bg | 朴素按钮是否有背景色 | boolean | false |
| icon | 图标组件 | Component | — |
| nativeType | 原生类型 | 'button' | 'submit' | 'reset' | 'button' |
Events
| 事件名 | 说明 | 类型 |
|---|---|---|
| click | 点击事件 | (event: MouseEvent) => void |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 按钮内容 |
| icon | 图标内容 |