业务场景,需要类似如下图的一个单选按钮组件,所以自己封装一个可以随时复用
组件: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