当前位置:首页 > VUE

vue实现搜索城市

2026-01-19 08:00:10VUE

Vue 实现搜索城市功能

数据准备

在Vue组件中定义一个城市列表数组和一个搜索关键词变量。城市列表可以静态定义或通过API动态获取。

data() {
  return {
    cities: ['北京', '上海', '广州', '深圳', '杭州', '成都', '重庆', '武汉'],
    searchQuery: ''
  }
}

模板部分

创建一个输入框用于输入搜索关键词,并显示过滤后的城市列表。

vue实现搜索城市

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索城市">
    <ul>
      <li v-for="city in filteredCities" :key="city">
        {{ city }}
      </li>
    </ul>
  </div>
</template>

计算属性

使用计算属性实现城市搜索过滤逻辑,根据输入的关键词匹配城市名称。

computed: {
  filteredCities() {
    return this.cities.filter(city => {
      return city.toLowerCase().includes(this.searchQuery.toLowerCase())
    })
  }
}

使用API获取城市数据

如果需要从后端获取城市数据,可以在created或mounted钩子中调用API。

vue实现搜索城市

created() {
  fetch('https://api.example.com/cities')
    .then(response => response.json())
    .then(data => {
      this.cities = data
    })
}

添加防抖优化

对于频繁的输入操作,可以添加防抖函数优化性能。

methods: {
  debounceSearch: _.debounce(function() {
    this.filteredCities = this.cities.filter(city => {
      return city.toLowerCase().includes(this.searchQuery.toLowerCase())
    })
  }, 300)
}

样式美化

为搜索框和列表添加基本样式,提升用户体验。

input {
  padding: 8px;
  width: 200px;
  margin-bottom: 10px;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  padding: 5px;
  cursor: pointer;
}
li:hover {
  background-color: #f0f0f0;
}

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

相关文章

vue实现点击旋转轮盘

vue实现点击旋转轮盘

实现点击旋转轮盘效果 在Vue中实现点击旋转轮盘效果,可以通过CSS动画和Vue的数据绑定结合完成。以下是一个完整的实现方案: 准备工作 需要安装Vue.js环境,可以通过CDN引入或使用Vue…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return {…

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

js实现vue

js实现vue

Vue.js 的基本实现方法 在 JavaScript 中实现 Vue.js 的功能,可以通过直接引入 Vue 库或使用现代构建工具(如 Vite 或 Webpack)。以下是几种常见的实现方式:…

vue实现过滤

vue实现过滤

Vue实现过滤的方法 在Vue中实现数据过滤可以通过多种方式完成,以下是几种常见的方法: 使用计算属性过滤 计算属性是Vue中处理数据过滤的理想选择,它们基于响应式依赖进行缓存,只有在相关依赖发生改…