创建新项目; 2.清空app.vue文件,定义3个下拉菜单,分别表示省份、城市和区域信息; 3.在实例中分别定义挂载元素、数据、监听属性和计算属性,通过监听属性对城市下拉菜单或区域下拉菜单进行重置,通过计算属性获取省份以及对应的城市和区域信息。
时间: 2024-01-21 07:19:03 浏览: 22
好的,以下是对应的代码实现:
1. 创建新项目
在命令行中执行以下命令,创建一个新的Vue项目:
```
vue create dropdown-demo
```
按照提示选用默认配置即可。
2. 清空app.vue文件
将app.vue文件中的内容清空,然后在template标签中定义3个下拉菜单,如下所示:
```html
<template>
<div>
<select v-model="selectedProvince" @change="resetCityAndArea">
<option disabled value="">请选择省份</option>
<option v-for="province in provinces" :value="province">{{ province }}</option>
</select>
<select v-model="selectedCity" :disabled="!cities.length" @change="resetArea">
<option disabled value="">请选择城市</option>
<option v-for="city in cities" :value="city">{{ city }}</option>
</select>
<select v-model="selectedArea" :disabled="!areas.length">
<option disabled value="">请选择区域</option>
<option v-for="area in areas" :value="area">{{ area }}</option>
</select>
</div>
</template>
```
3. 定义实例属性
在script标签中定义实例的挂载元素、数据、监听属性和计算属性,代码如下所示:
```javascript
<script>
export default {
name: "App",
data() {
return {
provinces: ["北京", "上海", "广东"], // 省份列表
cities: [], // 城市列表
areas: [], // 区域列表
selectedProvince: "", // 当前选中的省份
selectedCity: "", // 当前选中的城市
selectedArea: "" // 当前选中的区域
};
},
watch: {
// 监听selectedProvince属性,重置城市和区域下拉菜单
selectedProvince: function() {
this.selectedCity = "";
this.selectedArea = "";
this.cities = this.getCities();
this.areas = [];
},
// 监听selectedCity属性,重置区域下拉菜单
selectedCity: function() {
this.selectedArea = "";
this.areas = this.getAreas();
}
},
computed: {
// 计算选中的省份对应的城市列表
getCities: function() {
switch (this.selectedProvince) {
case "北京":
return ["北京市"];
case "上海":
return ["上海市"];
case "广东":
return ["广州市", "深圳市", "珠海市"];
default:
return [];
}
},
// 计算选中的城市对应的区域列表
getAreas: function() {
switch (this.selectedCity) {
case "北京市":
return ["东城区", "西城区", "朝阳区"];
case "上海市":
return ["黄浦区", "徐汇区", "浦东新区"];
case "广州市":
return ["天河区", "越秀区", "海珠区"];
case "深圳市":
return ["罗湖区", "福田区", "南山区"];
case "珠海市":
return ["香洲区", "斗门区", "金湾区"];
default:
return [];
}
}
}
};
</script>
```
这样,我们就完成了一个简单的省市区三级联动下拉菜单的实现。