Я новичок в Vue.js (использую Nuxt.js), и я пытаюсь добиться того, чтобы у меня был компонент Select, который я могу использовать везде и который совместим с W3C.
С помощьюиз @Jasmonate ответов, мне удалось создать этот компонент, он работает. Но атрибут value
все еще виден в исходном коде и поэтому не совместим с W3C. Может быть, проблема в другом месте проекта?!
Родительский компонент
<custom-select
:options="options"
v-model="selectedOption"
></custom-select>
<span>Selected : {{ selectedOption }}</span>
<script>
data() {
return {
selectedOption: "A",
options: [
{ label: "One", value: "A" },
{ label: "Two", value: "B" },
{ label: "Three", value: "C" }
],
};
}
</script>
custom-select.vue
<template>
<select :value="value" @input="clicked">
<option
v-for="option in options"
:key="option.label"
:value="option.value"
>
{{ option.label }}
</option>
</select>
</template>
<script>
export default {
props: {
value: {
required: true
},
options: {
type: Array,
required: true
}
},
methods: {
clicked($event) {
this.$emit("input", $event.target.value);
}
}
};
</script>
Я прочитал эти страницы документации:
А также посмотрел в Интернете, чтобы найти примерV-модели в пользовательском компоненте, но это всегда о входном теге. Единственный пример, который я нашел для пользовательского выбора с v-моделью, на самом деле не является тегом выбора, таким как плагин Vue Select или этот поток в StackOverflow.