当前位置:首页 > VUE

vue实现组合查询

2026-01-08 14:02:00VUE

vue实现组合查询

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

数据准备与绑定

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

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绑定查询条件:

vue实现组合查询

<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 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕包…

vue实现列表

vue实现列表

Vue 实现列表的方法 在 Vue 中实现列表渲染通常使用 v-for 指令,可以动态生成多个元素。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 遍历数组,生成列表项。v-for 需要…

vue实现反转

vue实现反转

实现数组反转 在Vue中反转数组可以通过多种方式实现,以下是几种常见方法: 使用JavaScript原生reverse方法 // 在methods中定义方法 methods: { revers…

vue实现spa

vue实现spa

Vue 实现 SPA(单页应用)的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化一个 Vue 项目,确保安装了 Vue Router 作为路由管理工具。运行以下命令创建项目: vue c…

vue实现颜色闪烁

vue实现颜色闪烁

实现颜色闪烁的方法 在Vue中实现颜色闪烁效果可以通过CSS动画或JavaScript定时器动态修改样式。以下是两种常见的实现方式: 使用CSS动画实现 通过定义@keyframes动画规则,结合V…

vue实现输入地址

vue实现输入地址

Vue 实现输入地址功能 在 Vue 中实现输入地址功能,可以通过结合表单输入、地图 API(如高德、百度或 Google Maps)以及地址自动补全等方式完成。以下是几种常见方法: 使用高德地图…