我试图在vue js 3中创建一个自定义的radio组件,根据官方文档,它可以使用v-model来完成。我尝试应用它,但第一次渲染组件时,它不会检查所选的值,但当我尝试选择另一个值时,该值可以更新。
代码如下:
应用程序版本
<template>
<div>
{{ picked }}
</div>
<RadioButton value="One" v-model="picked" />
<RadioButton value="Two" v-model="picked" />
</template>
<script>
import RadioButton from "./components/RadioButton.vue";
export default {
name: "App",
components: {
RadioButton,
},
data() {
return {
picked: "One",
};
},
};
</script>
RadioButton.vue
<template>
<input
type="radio"
name="group"
:value="modelValue"
@input="$emit('update:modelValue', $event.target.value)"
/>
</template>
<script>
export default {
name: "RadioButton",
props: ["modelValue"],
emits: ["update:modelValue"],
};
</script>
我在这里模拟了我的代码。https://codesandbox.io/s/restless-cache-2svtiz?file=/src/components/RadioButton.vue你可以看到它。谢谢
2条答案
按热度按时间ifsvaxew1#
在RadioButton.vue中,再次添加一个props,如下所示:
不要忘记在输入组件中添加
:checked="checked"
,最后,在App.vue中,将:checked="true"
添加到您希望默认选中的自定义组件。xzlaal3s2#
下面是一个使用composition的Vue3工作示例。
应用程序版本
RadioButton.vue