Vant Radio 單選框

2022-11-17 09:13 更新

引入

import Vue from 'vue';
import { RadioGroup, Radio } from 'vant';

Vue.use(Radio);
Vue.use(RadioGroup);

代碼演示

基礎(chǔ)用法

通過(guò) v-model 綁定值當(dāng)前選中項(xiàng)的 name

<van-radio-group v-model="radio">
  <van-radio name="1">單選框 1</van-radio>
  <van-radio name="2">單選框 2</van-radio>
</van-radio-group>
export default {
  data() {
    return {
      radio: '1'
    }
  }
};

水平排列

??將 direction 屬性設(shè)置為 horizontal 后,單選框組會(huì)變成水平排列??

<van-radio-group v-model="radio" direction="horizontal">
  <van-radio name="1">單選框 1</van-radio>
  <van-radio name="2">單選框 2</van-radio>
</van-radio-group>

禁用狀態(tài)

通過(guò) disabled 屬性禁止選項(xiàng)切換,在 Radio 上設(shè)置 disabled 可以禁用單個(gè)選項(xiàng)

<van-radio-group v-model="radio" disabled>
  <van-radio name="1">單選框 1</van-radio>
  <van-radio name="2">單選框 2</van-radio>
</van-radio-group>

禁用文本點(diǎn)擊

設(shè)置 label-disabled 屬性后,點(diǎn)擊單選框圖標(biāo)以外的內(nèi)容不會(huì)觸發(fā)切換

<van-radio-group v-model="radio">
  <van-radio name="1" icon-disabled>單選框 1</van-radio>
  <van-radio name="2" icon-disabled>單選框 2</van-radio>
</van-radio-group>

自定義形狀

將 ?shape? 屬性設(shè)置為 ?square?,單選框的形狀會(huì)變成方形。

<van-radio-group v-model="radio">
  <van-radio name="1" shape="square">單選框 1</van-radio>
  <van-radio name="2" shape="square">單選框 2</van-radio>
</van-radio-group>

自定義顏色

通過(guò) checked-color 屬性設(shè)置選中狀態(tài)的圖標(biāo)顏色

<van-radio-group v-model="radio">
  <van-radio name="1" checked-color="#07c160">單選框 1</van-radio>
  <van-radio name="2" checked-color="#07c160">單選框 2</van-radio>
</van-radio-group>

自定義大小

通過(guò) icon-size 屬性可以自定義圖標(biāo)的大小

<van-radio-group v-model="radio">
  <van-radio name="1" icon-size="24px">單選框 1</van-radio>
  <van-radio name="2" icon-size="24px">單選框 2</van-radio>
</van-radio-group>

自定義圖標(biāo)

通過(guò) icon 插槽自定義圖標(biāo),并通過(guò) slotProps 判斷是否為選中狀態(tài)

<van-radio-group v-model="radio">
  <van-radio name="1">
    單選框 1
    <template #icon="props">
      <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
    </template>
  </van-radio>
  <van-radio name="2">
    單選框 2
    <template #icon="props">
      <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
    </template>
  </van-radio>
</van-radio-group>

<style>
  .img-icon {
    height: 20px;
  }
</style>
export default {
  data() {
    return {
      radio: '1',
      activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
      inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png',
    };
  },
};

與 Cell 組件一起使用

此時(shí)你需要再引入 Cell 和 CellGroup 組件

<van-radio-group v-model="radio">

  <van-cell-group>

    <van-cell title="單選框 1" clickable @click="radio = '1'">

      <template #right-icon>

        <van-radio name="1" />

      </template>

    </van-cell>

    <van-cell title="單選框 2" clickable @click="radio = '2'">

      <template #right-icon>

        <van-radio name="2" />

      </template>

    </van-cell>

  </van-cell-group>

</van-radio-group>

API

Radio Props

參數(shù)說(shuō)明類(lèi)型默認(rèn)值
name標(biāo)識(shí)符any-
shape形狀,可選值為 squarestring

round

disabled是否為禁用狀態(tài)boolean

false

label-disabled是否禁用文本內(nèi)容點(diǎn)擊boolean

false

label-position文本位置,可選值為 leftstring

right

icon-size圖標(biāo)大小,默認(rèn)單位為 pxnumber | string20px
checked-color選中狀態(tài)顏色string#1989fa

RadioGroup Props

 參數(shù) 說(shuō)明 類(lèi)型 默認(rèn)值
 v-model 當(dāng)前選中項(xiàng)的標(biāo)識(shí)符 any -
 disabled 是否禁用所有單選框 boolean false
 direction           v2.5.0 排列方向,可選值為horizontal string vertical
 icon-size             v2.2.3
所有單選框的圖標(biāo)大小,默認(rèn)單位為 px
 number | string 20px
 checked-color   v2.2.3 所有單選框的選中狀態(tài)顏色 string #1989fa
Radio Events
事件名說(shuō)明回調(diào)參數(shù)
click點(diǎn)擊單選框時(shí)觸發(fā)event: Event

RadioGroup Events

事件名說(shuō)明回調(diào)參數(shù)
change當(dāng)綁定值變化時(shí)觸發(fā)的事件當(dāng)前選中項(xiàng)的 name

Radio Slots

名稱(chēng)說(shuō)明SlotProps
default自定義文本-
icon自定義圖標(biāo)checked: 是否為選中狀態(tài)


實(shí)例演示

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)