当前位置:首页 > VUE

vue列表查询实现

2026-02-10 18:39:17VUE

实现 Vue 列表查询功能

1. 数据绑定与列表渲染

使用 v-for 指令渲染列表数据,绑定到组件的 dataprops

<template>
  <ul>
    <li v-for="item in filteredList" :key="item.id">
      {{ item.name }}
    </li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      rawList: [{id: 1, name: 'Apple'}, {id: 2, name: 'Banana'}],
      searchQuery: ''
    }
  }
}
</script>

2. 计算属性实现过滤

通过计算属性动态过滤列表,避免每次输入都触发方法调用:

computed: {
  filteredList() {
    return this.rawList.filter(item => 
      item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }
}

3. 添加搜索输入框

在模板中添加搜索输入框,使用 v-model 双向绑定搜索关键词:

<input 
  type="text" 
  v-model="searchQuery" 
  placeholder="Search..."
  class="search-input"
>

4. 优化搜索性能

对于大数据量列表,可添加防抖处理:

import _ from 'lodash';

export default {
  methods: {
    search: _.debounce(function() {
      // 执行搜索逻辑
    }, 300)
  }
}

5. 服务端搜索实现

当数据量较大时,可改为服务端搜索:

methods: {
  async fetchSearchResults() {
    const res = await axios.get('/api/items', {
      params: { q: this.searchQuery }
    });
    this.filteredList = res.data;
  }
},
watch: {
  searchQuery(newVal) {
    if(newVal.length > 2) this.fetchSearchResults();
  }
}

6. 高级过滤功能

实现多条件复合搜索:

computed: {
  filteredList() {
    return this.rawList.filter(item => {
      const matchesName = item.name.toLowerCase().includes(this.searchQuery.toLowerCase());
      const matchesCategory = this.selectedCategory ? 
        item.category === this.selectedCategory : true;
      return matchesName && matchesCategory;
    });
  }
}

7. 空状态提示

添加搜索结果为空时的提示:

<template>
  <div v-if="filteredList.length === 0" class="empty-state">
    No items found
  </div>
</template>

vue列表查询实现

标签: 列表vue
分享给朋友:

相关文章

vue实现多选div

vue实现多选div

实现多选 DIV 的基本思路 在 Vue 中实现多选 DIV 功能,可以通过以下方法实现。主要思路是利用 v-model 绑定选中状态,结合 CSS 类名动态切换样式。 数据准备与模板结构 定义一…

vue实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: n…

vue状态管理怎么实现

vue状态管理怎么实现

Vue 状态管理实现方法 使用 Vuex(官方推荐) Vuex 是 Vue 的官方状态管理库,适合中大型应用。 安装 Vuex: npm install vuex --save 创建 Store…

vue 路由 实现

vue 路由 实现

Vue 路由实现方法 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue 路由的详细步骤: 安装 Vue Router 通过 npm 或 y…

vue实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…