当前位置:首页 > VUE

vue本地查询代码实现

2026-02-09 15:02:35VUE

Vue 本地查询代码实现

使用计算属性实现本地查询

计算属性是Vue中处理本地数据查询的高效方式,适用于依赖响应式数据的场景。定义一个计算属性,根据输入的关键词过滤数组。

data() {
  return {
    searchQuery: '',
    items: [
      { id: 1, name: 'Apple' },
      { id: 2, name: 'Banana' }
    ]
  }
},
computed: {
  filteredItems() {
    return this.items.filter(item => 
      item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }
}

模板中绑定搜索输入和结果展示:

<input v-model="searchQuery" placeholder="Search">
<ul>
  <li v-for="item in filteredItems" :key="item.id">
    {{ item.name }}
  </li>
</ul>

使用方法实现动态查询

对于需要更复杂逻辑或手动触发的查询,可以使用方法。定义一个方法处理查询逻辑,通过事件触发或watch调用。

methods: {
  filterItems() {
    return this.items.filter(item =>
      item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }
}

通过watch监听搜索词变化:

watch: {
  searchQuery(newVal) {
    this.filteredItems = this.filterItems()
  }
}

使用lodash实现防抖查询

对于高频输入的搜索场景,引入lodash的debounce函数减少计算频率,优化性能。

import { debounce } from 'lodash'

methods: {
  debouncedSearch: debounce(function() {
    this.filteredItems = this.items.filter(item =>
      item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }, 300)
},
watch: {
  searchQuery() {
    this.debouncedSearch()
  }
}

多条件复合查询

当需要基于多个字段进行复合查询时,扩展过滤逻辑,结合多个条件判断。

computed: {
  filteredItems() {
    return this.items.filter(item => 
      item.name.toLowerCase().includes(this.searchQuery.toLowerCase()) ||
      item.description.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }
}

使用Vuex管理查询状态

在大型应用中,通过Vuex集中管理搜索状态和逻辑,保持数据流清晰。

// store.js
state: {
  items: [...],
  searchQuery: ''
},
getters: {
  filteredItems: state => {
    return state.items.filter(item =>
      item.name.toLowerCase().includes(state.searchQuery.toLowerCase())
    )
  }
}

组件中通过mapGetters获取过滤后的数据:

import { mapGetters } from 'vuex'

computed: {
  ...mapGetters(['filteredItems'])
}

vue本地查询代码实现

标签: 代码vue
分享给朋友:

相关文章

vue实现点击旋转轮盘

vue实现点击旋转轮盘

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

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和…

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…