当前位置:首页 > 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获取过滤后的数据:

vue本地查询代码实现

import { mapGetters } from 'vuex'

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

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

相关文章

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Jes…

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue实现截图

vue实现截图

Vue 实现截图的方法 使用 html2canvas 库 安装 html2canvas 库: npm install html2canvas 在 Vue 组件中使用: import html2ca…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <ul…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…