Vue计算属性如何实现搜索过滤功能?手把手教你写列表筛选教程

阿晨小哥_7749

阿晨小哥_7749

2026-05-31

874人浏览

原创

Vue计算属性实现搜索过滤的核心是利用响应式依赖自动更新,通过v-model绑定searchKeyword并用computed定义filteredItems进行匹配过滤,模板中直接遍历渲染,简洁高效。

vue计算属性如何实现搜索过滤功能?手把手教你写列表筛选教程

Vue计算属性实现搜索过滤,核心是把输入框的值作为响应式依赖,让列表根据它自动重新计算。不需要手动监听输入、也不用在方法里反复调用过滤逻辑——计算属性天生缓存、自动更新,写起来简洁又高效。

绑定搜索关键词:用v-model双向绑定输入框

先在data中定义一个搜索关键词字段,比如searchKeyword,然后用v-model把它和输入框关联起来。这样用户一敲字,变量就实时更新,触发后续计算。

  • 确保searchKeyword初始值为空字符串(""),避免undefined导致过滤异常
  • 可加trim修饰符,自动去掉首尾空格:v-model.trim="searchKeyword"
  • 如果想支持回车搜索或防抖,那是额外优化,基础过滤不必须

写过滤用的计算属性:返回匹配的列表项

在computed里定义一个新属性,比如filteredItems。它内部遍历原始列表,对每项的指定字段(如name或title)做包含判断。

Element Plus UI Vue3
Element Plus UI Vue3

Element Plus Vue3 桌面组件库。在开发 Vue 3.x 页面时调用,使用 Element Plus 组件(如 el-button、el-input、el-form、el-table 等)。

下载
  • 用String(item.field).includes(searchKeyword)最常用,大小写敏感
  • 要忽略大小写?改成String(item.field).toLowerCase().includes(searchKeyword.toLowerCase())
  • 搜索关键词为空时,直接返回原列表,避免过滤出空数组

模板里直接用计算属性渲染列表

不再遍历原始数据items,而是遍历filteredItems。这样DOM只响应最终结果,逻辑清晰、性能友好。

  • v-for写法不变:v-for="item in filteredItems" :key="item.id"
  • 可以加个提示:当filteredItems.length === 0 && searchKeyword时显示“没找到”
  • 不需要在methods里写filter方法,也不用手动调用,计算属性会自动响应变化

进阶小技巧:多字段搜索 & 模糊匹配增强

如果想搜标题、描述、标签等多个字段,可以在计算属性里组合判断:

  • 用||连接多个includes,例如:item.title.includes(kw) || item.desc.includes(kw)
  • 需要高亮搜索词?先用计算属性过滤,再在模板中用v-html配合正则替换(注意XSS风险,需转义)
  • 搜索量大时,可加节流或用watch配合setTimeout延迟执行,但多数场景没必要

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2923

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6363

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

7270

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

7118

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

1023

5

vue2.0和3.0区别
vue2.0和3.0区别

vue2.0和3.0区别:vue2的响应式原理是利⽤“Object.defineProperty()”对数据进⾏劫持结合发布订阅模式的⽅式来实现,vue3中使⽤了es6的proxy API对数据代理,实现对数据的监控。本专题为大家提供vue2.0和3.0区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.17

1754

5

vue3的生命周期有哪些
vue3的生命周期有哪些

vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deactivated等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

12562

5

Vue3组合式API与组件开发实战
Vue3组合式API与组件开发实战

本专题讲解 Vue 3 组合式 API 的核心概念与应用技巧,深入分析响应式系统、生命周期管理、组件设计与复用策略。通过完整项目案例,指导前端开发者实现高性能、结构清晰的 Vue 应用,提升开发效率与代码可维护性。

2026.02.10

336

23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.5万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.6万人学习