当前位置:首页 > VUE

用vue实现选择城市

2026-02-24 22:43:25VUE

实现选择城市功能

安装依赖

确保项目中已安装Vue及相关UI库(如Element UI或Vant)。以Element UI为例:

npm install element-ui

基础组件结构

在Vue组件中引入城市选择器组件或自定义实现:

<template>
  <div>
    <el-cascader
      v-model="selectedCity"
      :options="cityOptions"
      placeholder="选择城市"
    />
  </div>
</template>

数据准备

准备城市数据,可使用静态数据或动态获取:

用vue实现选择城市

data() {
  return {
    selectedCity: [],
    cityOptions: [
      {
        value: 'guangdong',
        label: '广东省',
        children: [
          { value: 'guangzhou', label: '广州市' },
          { value: 'shenzhen', label: '深圳市' }
        ]
      }
    ]
  }
}

动态加载数据

通过API获取城市数据:

methods: {
  async loadCities() {
    const response = await axios.get('/api/cities');
    this.cityOptions = response.data;
  }
},
mounted() {
  this.loadCities();
}

处理选择事件

添加选择完成后的处理逻辑:

用vue实现选择城市

watch: {
  selectedCity(newVal) {
    if (newVal.length > 0) {
      console.log('已选择城市:', newVal);
      // 后续业务逻辑
    }
  }
}

样式优化

根据需要调整选择器样式:

.el-cascader {
  width: 300px;
}

替代方案

使用第三方城市选择组件(如v-region):

npm install v-region
<template>
  <v-region v-model="selectedCity" />
</template>
<script>
import VRegion from 'v-region'
export default {
  components: { VRegion }
}
</script>

注意事项

  • 多级联选择时注意数据层级结构
  • 移动端建议使用Vant等移动端UI库的Picker组件
  • 大数据量城市列表建议添加搜索功能

标签: 城市vue
分享给朋友:

相关文章

vue实现muli

vue实现muli

Vue 实现多语言(i18n)支持 在 Vue 项目中实现多语言(i18n)功能,通常使用 vue-i18n 插件。以下是具体实现步骤: 安装 vue-i18n npm install vue-i…

vue实现grid

vue实现grid

Vue 实现 Grid 布局的方法 使用 CSS Grid 布局 Vue 可以结合 CSS Grid 布局实现灵活的网格系统。CSS Grid 是现代浏览器原生支持的布局方案,无需额外依赖库。 &l…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue  实现tab

vue 实现tab

实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染完成。以下是两种常见方法: 使用 v-if 或 v-show 实现条件渲染 通过绑定 currentTab 变量…

轮播vue实现

轮播vue实现

使用 Vue 实现轮播功能 基础轮播实现 安装依赖(如使用 Swiper): npm install swiper vue-awesome-swiper 组件代码示例: <template&…

vue 实现loading

vue 实现loading

Vue 实现 Loading 的方法 使用 v-if 和 v-show 控制显示 在 Vue 中可以通过 v-if 或 v-show 控制 loading 组件的显示与隐藏。v-if 会动态创建或销毁…