本地列表筛选
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/efjv2026831。
技能介绍
要解决的具体问题
在前端 Demo 或静态页面里,列表数据通常直接写在 HTML 里。一旦需要按姓名、阶段、标签做搜索,就容易出现两种粗暴做法:要么给每个列表项手动绑 input 事件,用循环过滤 innerHTML;要么为了一个搜索框拉起整套后端接口与状态管理。对静态或小数据量场景来说,前者逻辑散、排序难维护,后者成本明显过高。
技能如何工作
本地列表筛选 面向这种场景,把筛选与排序收敛到列表自身。使用时先约定列表项上的 class,例如 name、stage,这些字段名会作为 valueNames 交给 List.js 解析。随后在列表容器上挂载 List 实例,并提供一个搜索输入框,即可获得即时筛选结果。若启用排序,同一实例也可承担列头点击排序的职责。
推荐实现步骤很直接:
- 引入
list.js - 列表项按
valueNames打上对应 class - 初始化
new List(...)并挂载搜索输入框 - 自测输入关键字是否即时过滤,排序按钮是否生效
适用边界与注意点
该方案适合静态或小数据 Demo 列表,不设计服务端搜索的替代。注意几点:
- 列表项必须稳定带有约定 class,否则
valueNames取不到值 - 若 DOM 发生大幅动态变更,需要重建 List 实例或按文档刷新数据
- 不要在万级 DOM 节点上挂 List.js,浏览器性能会快速下降
- 与 Vue 虚拟 DOM 配合时,
updated之后需要重建实例,不能只在模板里挂一次就不管
使用场景
- 在纯静态 Demo 页面里,需要在客户卡片列表中按姓名即时筛选,且不引入后端。
- 做无后端的产品列表 Demo 时,需要同时支持关键字过滤和按字段点击排序。
- 维护简单静态 HTML 页面时,想给已有的团队列表加搜索框,但不能改动整体结构。
- 准备技术分享示例时,需要一个不依赖框架的本地列表即时过滤小 Demo。
适合人员
- 做静态前端 Demo 的开发者,想快速实现列表搜索排序且不想接后端。
- 维护简单静态官网页面的前端工程师,需要给产品或团队列表加轻量搜索。
- 准备教学示例的技术作者,想找一个不依赖框架、能直接演示列表筛选的小例子。
- 在 Vue 项目里维护局部静态列表的开发者,需要在虚拟 DOM 更新后重建搜索实例。