把此地址view-source:https://area.site/china当做后端数据,如何用vue框架实现后端接口调用,实现省市二级联动菜单
时间: 2024-12-25 20:30:45 浏览: 4
在 Vue.js 中,我们可以利用 `axios` 或者其他支持的 HTTP 客户端库来模拟后端接口调用,因为提供的 URL `view-source:https://area.site/china` 是一个静态HTML页面,而不是实际的API接口。不过,为了演示这种模拟,我们将创建一个本地 JSON 数据源来模拟省市数据。
首先,安装 axios:
```bash
npm install axios
```
然后,在 Vue 组件中,我们可以这样做:
1. 创建一个数据模型 (`CityData.vue`):
```html
<template>
<div>
<select v-model="selectedProvince">
<option v-for="(province, index) in provinces" :key="index" :value="province.id">{{ province.name }}</option>
</select>
<ul v-if="selectedProvince">
<li v-for="(city, index) in cities[selectedProvince.id]" :key="index" :value="city.id">{{ city.name }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
selectedProvince: null,
provinces: [],
cities: {},
};
},
mounted() {
this.fetchData();
},
methods: {
fetchData() {
// 使用 axios 模拟请求,这里假设返回的数据结构类似下面这样
axios.get('data.json') // 使用本地 JSON 文件代替实际 API 调用
.then(response => {
this.provinces = response.data.provinces;
this.cities = response.data.cities; // 省级数据对应的城市数组
})
.catch(error => console.error('Error fetching data', error));
},
},
};
</script>
```
2. 创建一个包含省市数据的 JSON 文件 (`data.json`):
```json
{
"provinces": [
{ "id": 1, "name": "省份A" },
{ "id": 2, "name": "省份B" }
],
"cities": {
1: [{ "id": 101, "name": "城市A1" }, { "id": 102, "name": "城市A2" }],
2: [{ "id": 201, "name": "城市B1" }]
}
}
```
现在,当你在组件中选择一个省份时,对应的下拉列表会显示该省下的城市选项。这只是一个简单的示例,实际上你应该根据实际的 HTML 结构和数据组织调整模板和逻辑。
阅读全文