当前位置:首页 > VUE

vue实现组合查询

2026-01-08 14:02:00VUE

vue实现组合查询

组合查询通常涉及多个条件的联合筛选,Vue可以结合计算属性、v-model和数组方法实现高效查询。以下是具体实现方式:

数据准备与绑定

在Vue组件中定义查询条件和数据集合:

data() {
  return {
    searchParams: {
      name: '',
      age: '',
      status: ''
    },
    rawData: [
      { id: 1, name: 'Alice', age: 25, status: 'active' },
      { id: 2, name: 'Bob', age: 30, status: 'inactive' }
    ]
  }
}

计算属性实现筛选

使用计算属性动态过滤数据:

computed: {
  filteredData() {
    return this.rawData.filter(item => {
      return (
        (this.searchParams.name === '' || 
         item.name.includes(this.searchParams.name)) &&
        (this.searchParams.age === '' || 
         item.age == this.searchParams.age) &&
        (this.searchParams.status === '' || 
         item.status === this.searchParams.status)
      )
    })
  }
}

模板中的双向绑定

在模板中使用v-model绑定查询条件:

<div>
  <input v-model="searchParams.name" placeholder="姓名">
  <input v-model="searchParams.age" placeholder="年龄" type="number">
  <select v-model="searchParams.status">
    <option value="">全部状态</option>
    <option value="active">活跃</option>
    <option value="inactive">非活跃</option>
  </select>
</div>

动态渲染结果

展示筛选后的数据:

<ul>
  <li v-for="item in filteredData" :key="item.id">
    {{ item.name }} - {{ item.age }} - {{ item.status }}
  </li>
</ul>

高级筛选优化

对于复杂查询条件,可采用对象遍历方式:

computed: {
  filteredData() {
    return this.rawData.filter(item => {
      return Object.keys(this.searchParams).every(key => {
        const searchValue = this.searchParams[key]
        return searchValue === '' || 
               String(item[key]).includes(String(searchValue))
      })
    })
  }
}

注意事项

  • 数值比较需注意类型转换,建议使用==而非===
  • 空值处理要明确,避免undefined导致的筛选异常
  • 大数据量时考虑防抖优化性能

vue实现组合查询

标签: 组合vue
分享给朋友:

相关文章

vue 路由实现

vue 路由实现

Vue 路由实现方法 安装 Vue Router 使用 npm 或 yarn 安装 Vue Router 依赖包: npm install vue-router # 或 yarn add vue-r…

vue实现多选div

vue实现多选div

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

vue实现选择分类

vue实现选择分类

Vue 实现选择分类的方法 使用 v-model 绑定选择值 在 Vue 中可以通过 v-model 指令实现双向数据绑定,适用于下拉选择框(<select>)。以下是一个基本示例: &…

项目基于vue实现

项目基于vue实现

基于Vue实现项目的关键方法 搭建基础环境 安装Node.js和npm/yarn,确保开发环境具备运行Vue的能力。通过Vue CLI快速初始化项目结构,选择所需配置(如Babel、Router、Vu…

vue表格实现教学

vue表格实现教学

Vue 表格实现方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签,结合v-for动态渲染数据: <template> <table&g…

在线脑图 vue 实现

在线脑图 vue 实现

在线脑图 Vue 实现方案 使用开源库实现 推荐使用 mind-elixir 或 jsmind 这类开源库,它们专为脑图设计且支持 Vue 集成。 安装依赖: npm install mind…