当前位置:首页 > VUE

vue实现搜索城市

2026-01-19 08:00:10VUE

Vue 实现搜索城市功能

数据准备

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

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

模板部分

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

<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。

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)
}

样式美化

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

vue实现搜索城市

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 实现用户注册功能 环境准备 确保已安装 Vue CLI 或通过 CDN 引入 Vue。若使用 Vue CLI,需安装 axios 或其他 HTTP 库用于后端通信。 注册表单组件 创建…

vue实现新闻

vue实现新闻

Vue 实现新闻功能 使用 Vue 实现新闻功能通常涉及新闻列表展示、新闻详情页、分类筛选等模块。以下是实现的基本思路和代码示例。 新闻列表展示 通过 Vue 组件展示新闻列表,通常使用 v-for…

vue代理实现

vue代理实现

Vue 代理实现方法 在 Vue 项目中,配置代理可以解决开发环境下的跨域问题,通常通过修改 vue.config.js 文件实现。以下是几种常见的代理配置方式: 基础代理配置 在 vue.conf…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…

vue 实现全屏

vue 实现全屏

Vue 实现全屏功能 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装 scre…

vue实现监听

vue实现监听

监听数据变化 在Vue中,可以通过watch选项或$watch方法监听数据的变化。watch适用于组件选项内声明式监听,$watch适用于动态监听。 // 选项式API export default…