Извините, мой английский плохой, но я постараюсь ответить на ваш вопрос.1 、 Директива v-if уничтожит и отобразит элемент, если условие истинно, возможно, вам следует проверить изменение условия.2. Я полагаю, вы хотите, чтобы параметр уничтожал значение select, чтобы связать значение параметра render, верно?Об этом вам стоит изучить HTML. введите описание ссылки здесь
И используйте Vue, наблюдая за условием, при изменении условия сопоставьте значение select в значении параметров рендеринга, если False, измените значение select на первое значение параметра.3 、 значение устанавливается в данных, и список использования не будет сложным.
Это мой код:
const app = new Vue({
el: '#app',
data: {
legs: 4,
wings: 2,
selected: 'cat',
optionValueList:['cat','dog','bird','snake']
},
watch:{
legs(newVal){
if(newVal==4){
this.selected = this.optionValueList[0]
}else if(newVal==2 && this.wings==2){
this.selected = this.optionValueList[2]
} else if(newVal==0){
this.selected = this.optionValueList[3]
}
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<select id='animal' v-model='selected'>
<option :value='optionValueList[0]' v-if='legs == 4' >Cat</option>
<option :value='optionValueList[1]' v-if='legs == 4' >Dog</option>
<option :value='optionValueList[2]' v-if='legs == 2 && wings == 2'>Bird</option>
<option :value='optionValueList[3]' v-if='legs==0'>Snake</option>
</select>
{{selected}}
<input type="number" v-model="legs"></input>
</div>