Skip to content

Radio 单选按钮

介绍

用于在一组备选项中进行单选。

基础用法

通过 v-model 绑定值当前选项的 label,并且 nut-radio-groupnut-radio 需要配合使用。

html
<template>
  <nut-radio-group v-model="value">
    <nut-radio label="1" shape="button" size="large">选项1</nut-radio>
    <nut-radio label="2" disabled>选项2</nut-radio>
    <nut-radio label="3">选项3</nut-radio>
  </nut-radio-group>

  <nut-radio-group v-model="value" text-position="left">
    <nut-radio label="1">选项1</nut-radio>
    <nut-radio label="2" disabled>选项2</nut-radio>
    <nut-radio label="3">选项3</nut-radio>
  </nut-radio-group>

  <nut-radio-group v-model="value">
    <nut-radio label="1" shape="button">选项1</nut-radio>
    <nut-radio label="2" shape="button" disabled>选项2</nut-radio>
    <nut-radio label="3" shape="button">选项3</nut-radio>
  </nut-radio-group>
</template>
ts
const value = ref("1");

水平使用

html
<template>
  <nut-radio-group v-model="value" direction="horizontal">
    <nut-radio label="1">选项1</nut-radio>
    <nut-radio label="2">选项2</nut-radio>
    <nut-radio label="3">选项3</nut-radio>
  </nut-radio-group>

  <nut-radio-group v-model="value" direction="horizontal">
    <nut-radio label="1" shape="button">选项1</nut-radio>
    <nut-radio label="2" shape="button">选项2</nut-radio>
    <nut-radio label="3" shape="button">选项3</nut-radio>
  </nut-radio-group>
</template>

自定义尺寸

html
<template>
  <nut-radio-group v-model="value">
    <nut-radio label="1" icon-size="12">选项1</nut-radio>
    <nut-radio label="2" icon-size="12">选项2</nut-radio>
  </nut-radio-group>
</template>

自定义图标

通过 slot 自定义图标,建议同时设置 iconcheckedIcon 两个插槽。

html
<template>
  <nut-radio-group v-model="value">
    <nut-radio label="1">
      选项1
      <template #icon>
        <nut-icon name="checklist"></nut-icon>
      </template>
      <template #checkedIcon>
        <nut-icon name="checklist" custom-color="red"></nut-icon>
      </template>
    </nut-radio>

    <nut-radio label="2">
      选项2
      <template #icon>
        <nut-icon name="checklist"></nut-icon>
      </template>
      <template #checkedIcon>
        <nut-icon name="checklist" custom-color="red"></nut-icon>
      </template>
    </nut-radio>
  </nut-radio-group>
</template>

触发 change 事件

html
<template>
  <nut-radio-group v-model="value" @change="onChange">
    <nut-radio label="1">选项1</nut-radio>
    <nut-radio label="2">选项2</nut-radio>
  </nut-radio-group>
</template>
ts
const value = ref("1");

function onChange(val: any) {
  console.log("change", val);
}

API

Radio Props

参数说明类型可选值默认值
disabled是否禁用选择boolean-false
icon-size图标尺寸string / number-18
label单选框标识string / number / boolean--
shape形状stringbutton / roundround
size 1.5.9尺寸(仅 shapebutton 时有效)stringlarge / small / mini / normalnormal

Radio Slots

名称说明
icon未选中时的图标
checkedIcon选中时的图标

RadioGroup Props

参数说明类型可选值默认值
v-model当前选中项的标识符,与 label 值一致时呈选中状态string / number / boolean--
text-position文本所在的位置stringleft / rightright
direction使用横纵方向stringhorizontal / verticalvertical

RadioGroup Events

事件名说明类型
change值变化时触发(value: string | number | boolean) => void

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-radio-label-font-color#1d1e1e
--nut-radio-label-font-active-colorvar(--nut-primary-color)
--nut-radio-label-disable-color#999
--nut-radio-icon-disable-color#d6d6d6
--nut-radio-label-button-border-colorvar(--nut-primary-color)
--nut-radio-label-button-backgroundvar(--nut-primary-color)
--nut-radio-label-margin-left15px
--nut-radio-button-border-radius15px
--nut-radio-label-font-size14px
--nut-radio-button-font-size12px
--nut-radio-button-padding5px 18px
--nut-radio-icon-disable-color2var(--nut-help-color)_

MIT Licensed