要实现Vue3中多个下拉框的联动,可以使用v-model
指令和watch
特性来实现。
首先,在Vue组件中定义多个下拉框的数据和选项列表:
<template><div><select v-model="selectedOption1"><option v-for="option in options1" :value="option">{{ option }}</option></select><select v-model="selectedOption2"><option v-for="option in options2" :value="option">{{ option }}</option></select><select v-model="selectedOption3"><option v-for="option in options3" :value="option">{{ option }}</option></select></div>
</template><script>
import { ref, watch } from 'vue';export default {setup() {const selectedOption1 = ref('');const selectedOption2 = ref('');const selectedOption3 = ref('');const options1 = ['Option 1', 'Option 2', 'Option 3'];const options2 = ['Option A', 'Option B', 'Option C'];const options3 = ['Option X', 'Option Y', 'Option Z'];watch(selectedOption1, (newValue) => {// 根据选择的选项更新其他下拉框的选项列表if (newValue === 'Option 1') {options2.value = ['Option A', 'Option B', 'Option C'];options3.value = ['Option X', 'Option Y', 'Option Z'];} else if (newValue === 'Option 2') {options2.value = ['Option D', 'Option E', 'Option F'];options3.value = ['Option X', 'Option Y', 'Option Z'];} else if (newValue === 'Option 3') {options2.value = ['Option G', 'Option H', 'Option I'];options3.value = ['Option X', 'Option Y', 'Option Z'];}// 重置其他下拉框的选中值selectedOption2.value = '';selectedOption3.value = '';});return {selectedOption1,selectedOption2,selectedOption3,options1,options2,options3};}
};
</script>
使用ref
函数创建了多个响应式的变量selectedOption1
、selectedOption2
和selectedOption3
,用于保存下拉框的选中值。然后,定义多个选项列表options1
、options2
和options3
。
接下来,使用watch
函数来监听selectedOption1
的变化。当selectedOption1
的值发生变化时,可以根据选择的选项更新其他下拉框的选项列表,并重置其他下拉框的选中值。
最后,在模板中使用v-model
指令将下拉框的选中值与selectedOption1
、selectedOption2
和selectedOption3
绑定起来,同时使用v-for
指令遍历选项列表。
这样,当选择一个选项时,其他下拉框的选项列表和选中值就会根据选择的选项进行更新,实现了多个下拉框的联动效果。