# Radio ### Install ```js import { createApp } from 'vue'; import { RadioGroup, Radio } from 'vant'; const app = createApp(); app.use(Radio); app.use(RadioGroup); ``` ## Usage ### Basic Usage Use `v-model` to bind the name of checked radio. ```html Radio 1 Radio 2 ``` ```js import { ref } from 'vue'; export default { setup() { const checked = ref('1'); return { checked }; }, }; ``` ### Horizontal ```html Radio 1 Radio 2 ``` ### Disabled ```html Radio 1 Radio 2 ``` ### Custom Shape ```html Radio 1 Radio 2 ``` ### Custom Color ```html Radio 1 Radio 2 ``` ### Custom Icon Size ```html Radio 1 Radio 2 ``` ### Custom Icon Use icon slot to custom icon ```html Radio 1 Radio 2 ``` ```js import { ref } from 'vue'; export default { setup() { const checked = ref('1'); return { checked, activeIcon: 'https://img01.yzcdn.cn/vant/user-active.png', inactiveIcon: 'https://img01.yzcdn.cn/vant/user-inactive.png', }; }, }; ``` ### Disable Label Click ```html Radio 1 Radio 2 ``` ### Inside a Cell ```html ``` ## API ### Radio Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | name | Radio name | _any_ | - | | shape | Can be set to `square` | _string_ | `round` | | disabled | Whether to disable radio | _boolean_ | `false` | | label-disabled | Whether to disable label click | _boolean_ | `false` | | label-position | Can be set to `left` | _string_ | `right` | | icon-size | Icon size | _number \| string_ | `20px` | | checked-color | Checked color | _string_ | `#1989fa` | - | ### RadioGroup Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | v-model | Name of checked radio | _any_ | - | | disabled | Disable all radios | _boolean_ | `false` | | direction | Direction, can be set to `horizontal` | _string_ | `vertical` | | icon-size | Icon size of all radios | _number \| string_ | `20px` | | checked-color | Checked color of all radios | _string_ | `#1989fa` | - | ### Radio Events | Event | Description | Parameters | | ----- | ----------------------------- | ------------------- | | click | Emitted when radio is clicked | _event: MouseEvent_ | ### RadioGroup Events | Event | Description | Parameters | | ------ | -------------------------- | -------------- | | change | Emitted when value changed | _name: string_ | ### Radio Slots | Name | Description | SlotProps | | ------- | ------------ | ------------------ | | default | Custom label | - | | icon | Custom icon | _checked: boolean_ | ### Less Variables How to use: [Custom Theme](#/en-US/theme). | Name | Default Value | Description | | -------------------------------- | -------------------------- | ----------- | | @radio-size | `20px` | - | | @radio-border-color | `@gray-5` | - | | @radio-transition-duration | `@animation-duration-fast` | - | | @radio-label-margin | `@padding-xs` | - | | @radio-label-color | `@text-color` | - | | @radio-checked-icon-color | `@blue` | - | | @radio-disabled-icon-color | `@gray-5` | - | | @radio-disabled-label-color | `@gray-5` | - | | @radio-disabled-background-color | `@border-color` | - |