封装一个自定义的单选按钮组件(vue3-ts)

文章介绍了如何基于Vue自定义一个可复用的单选按钮组件cp-radio-btn,该组件接受sexList数组作为选项数据,并通过v-model绑定number或string类型的值。组件样式类似于Vant组件,实现了动态切换选中状态的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 业务场景,需要类似如下图的一个单选按钮组件,所以自己封装一个可以随时复用

 

组件:cp-radio-btn

<script setup lang="ts">
defineProps<{
  sexList: { label: string; value: number | string }[]
  modelValue?: number | string
}>()
defineEmits<{
  (e: 'update:modelValue', value: number | string): void
}>()
</script>

<template>
  <div class="cp-radio-btn">
    <a
      class="item"
      href="javascript:;"
      v-for="item in sexList"
      :key="item.value"
      :class="{ active: modelValue == item.value }"
      @click="$emit('update:modelValue', item.value)"
      >{
  { item.label }}</a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值