Доброго времени суток! Пытаюсь сделать кастомный компонент - радиокнопку на VUE 3.
Не могу никак понять как правильно реализовать поддержку v-model и сделать компонент максимально простым для использования. Очень сильно запутался, а нагуглить что-то внятное не получается от слова совсем. Прошу помощи!
Parent
<template>
<RadioButton label="1" :value="'1'" name="test" v-model="radioState" @change="ConsoleLog(radioState)"></RadioButton>
<RadioButton label="2" :value="'2'" name="test" v-model="radioState" @change="ConsoleLog(radioState)"></RadioButton>
</template>
<script>
data() {
return {
radioState: '',
}
},
methods: {
ConsoleLog(value) {
console.log(value)
}
}
</script>
Child
<template>
<label>
{{label}}
<input type="radio" :name="name" :checked="isChecked" :value="value" @update:modelValue="$emit('change', $event.target.value)" />
</label>
</template>
<script>
export default {
model: {
prop: 'modelValue',
event: 'update:modelValue'
},
props: {
"label": { type: String, default: "", required:true },
"modelValue": { default: "" },
"value": { type: String, default: undefined },
"name": { type: String, default: 'test'}
},
computed: {
isChecked() {
return this.modelValue == this.value
}
}
}
</script>
При нажатии на кнопки в консоли пустые сообщения