前端VUE---JS实现数据的模糊搜索
实现背景
因为后端实现人员列表返回,每次返回的数据量在100以内,要求前端自己进行模糊搜索
页面实现

因为是实时更新数据的,就不需要搜索和重置按钮了
代码
HTML
<el-dialogtitle="团队人员详情":visible.sync="centerDialogVisible"width="30%"center:close-on-click-modal="false"><el-row :gutter="20"><el-col :span="10"><el-input v-model="keyword" placeholder="请输入姓名或身份证查询"></el-input></el-col></el-row><el-table :data="filteredItems" height="350"><el-table-column property="name" label="姓名" align="center"></el-table-column><el-table-column property="idCard" label="身份证" align="center"></el-table- column></el-table><span slot="footer" class="dialog-footer"><el-button type="primary" @click="centerDialogVisible = false">确 定</el-button></span></el-dialog>
js
// 计算属性computed: {filteredItems() {// if (!this.keyword) {// return this.userList// }return this.userList.filter(item =>{return item.idCard.includes(this.keyword) || item.name.includes(this.keyword)});}},
效果
注意点1:我在data中定义keyword时候第一次使用的是默认值 undefined 导致includes出来的结果是空。
注意点2:我在返回数据中定义的身份证号是number类型,在计算时候直接报错为类型错误,不能使用includes函数。需要转换为字符串类型
computed的实现方式很简洁,主要借助一个计算属性,在计算属性中通过搜索关键词过滤原始列表数据得到新的数据列表,并将新数据列表渲染到页面。
值得注意的地方:
abc.indexOf('a')的返回值是0,而abc.indexOf('')的返回值也是0。
因此,在一开始没有输入任何数据的时候,计算属性列表filterFruitList中经过计算得到的数据和原始列表数据fruitList是一样的。
这里最重要的是没有对原来的数据进行修改和删除
也可以使用watch监听数据变化
GPT提供的方法
在Vue2中,你可以按照以下步骤实现后端返回的带有姓名和身份证信息的List进行展示,并添加静态模糊搜索和搜索重置功能。
首先,在Vue组件中定义需要的数据变量:
data() {return {userList: [], // 存储后端返回的列表数据keyword: '', // 存储搜索关键字filteredList: [] // 存储搜索结果数据};
}
然后,使用生命周期钩子函数 mounted() 在组件加载时获取后端数据:
mounted() {// 调用后端API获取数据(示例)yourApi.getUserList().then(response => {this.userList = response.data;});
}
在模板中,你可以使用一个输入框和一个搜索按钮以及一个重置按钮:
<input type="text" v-model="keyword" placeholder="请输入搜索关键字">
<button @click="search">搜索</button>
<button @click="reset">重置</button>
接下来,在Vue组件中实现静态模糊搜索和搜索重置功能的两个方法:
methods: {search() {if (this.keyword.trim() === '') {this.filteredList = this.userList;} else {const keywordLowerCase = this.keyword.toLowerCase();this.filteredList = this.userList.filter(user => {const nameMatch = user.name.toLowerCase().includes(keywordLowerCase);const idCardMatch = user.idCard.toLowerCase().includes(keywordLowerCase);return nameMatch || idCardMatch;});}},reset() {this.keyword = '';this.filteredList = this.userList;}
}
在 `search` 方法中,首先判断关键字是否为空,如果为空则直接将 `filteredList` 设置为原始列表数据 `userList`,否则根据关键字对 `userList` 进行静态模糊搜索,并将结果赋值给 `filteredList`。
在 `reset` 方法中,将关键字重置为空字符串,并将 `filteredList` 设置为原始列表数据 `userList`。
最后,在模板中使用 `v-for` 遍历 `filteredList`,展示搜索结果:
<ul><li v-for="user in filteredList" :key="user.id">{{ user.name }} - {{ user.idCard }}</li>
</ul>
综上所述,你可以按照以上步骤,使用Vue2实现后端返回的列表数据的展示,并添加静态模糊搜索和搜索重置功能。
相关文章:
前端VUE---JS实现数据的模糊搜索
实现背景 因为后端实现人员列表返回,每次返回的数据量在100以内,要求前端自己进行模糊搜索 页面实现 因为是实时更新数据的,就不需要搜索和重置按钮了 代码 HTML <el-dialogtitle"团队人员详情":visible.sync"centerDi…...
Android Studio 的android.jar文件在哪儿
一般在:C:\Users\admin\AppData\Local\Android\Sdk\platforms\android-33下(不一定是33,这个得看你Android Studio->app->builde.gradle的targetSdk是多少) 怎么找: 1.打开Android Studio 粘贴地址后࿰…...
Elasticsearch 部署学习
文章目录 Elasticsearch 部署学习1. 单节点部署 elasticsearch1.1 部署 jdk1.2 下载 elasticsearch1.3 上传文件并修改配置文件1.4 启动1.5 问题总结1.6 浏览器验证 2. 集群部署 elasticsearch3. 常用命令4. Elasticsearch kibana安装:one: 参考部署文档:two: 下载对应版本的安…...
nodejs 如何在npm发布自己的包 <记录>
一、包结构 必要结构: 一个包对应一个文件夹(文件夹名不是包名,但最好与包名保持一致,包名以package.json中的name为主)包的入口文件index.js包的配置文件package.json包的说明文档README.md 二、需要说明的文件 1.配…...
移植RTOS的大体思路
最首先当然是去官网看看是不是已经支持目标芯片啦,没有的话,就需要自己手动移植了 获取源码 一般可以从rtos官网或者GitHub上获取源码 确认源码结构 这种有官方文档说明,需要修改的一般都是BSP和libcpu相关文件夹中的内容 CPU架构移植 …...
FPGA到底是什么?
首先只是凭自己浅略的了解,FPGA好像也是涉及到了开发板,单片机之类的东西,和嵌入式十分相似,但是比嵌入式更高级的东西。 肯定有很多小伙伴如我一样,只是听说过FPGA,听别人说的传呼其神,那么它到…...
算法-单词搜索 II
算法-单词搜索 II 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-search-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 DFS 2.1 解题思路 每个格子往上下左右四个方向DFS,拼接后的单词如果在答案集中&…...
怒刷LeetCode的第15天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:哈希表双向链表 方法二:TreeMap 方法三:双哈希表 第二题 题目来源 题目内容 解决方法 方法一:二分查找 方法二:线性搜索 方法三:Arrays类的b…...
Android开发MVP架构记录
Android开发MVP架构记录 安卓的MVP(Model-View-Presenter)架构是一种常见的软件设计模式,用于帮助开发者组织和分离应用程序的不同组成部分。MVP架构的目标是将应用程序的业务逻辑(Presenter)、用户界面(V…...
day2作业
1,输入两个数,完成两个数的加减乘除 #输入两个数,完成两个数的加减乘除 num1int(input("请输入第一个数:")) num2int(input("请输入第二个数:")) print(str(num1)str(num2)str(num1num2)) print(str(num1)-str(num2)str…...
Python办公自动化之Word
Python操作Word 1、Python操作Word概述2、写入Word2.1、标题2.2、章节与段落2.3、字体与引用2.4、项目列表2.5、分页2.6、表格2.7、图片3、读取Word3.1、读取文档3.2、读取表格4、将Word表格保存到Excel5、格式转换5.1、Doc转Docx5.2、Word转PDF1、Python操作Word概述 python-d…...
力扣26:删除有序数组中的重复项
26. 删除有序数组中的重复项 - 力扣(LeetCode) 题目: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 …...
基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍
一、开发环境 开发环境为ArcGIS Engine 10.2与Visual studio2010。在使用ArcEngine查询进行查询的时候主要使用三种查询接口IQueryFilter(属性查询) 、ISpatialFilter(空间查询) 、IQueryDef (多表查询) 那…...
Oracle 11g RAC部署笔记
搭了三次才搭好,要记录一下。 1. Oracle 11g RAC部署的相关步骤以及需要的包,可以参考这里。 Oracle 11g RAC部署_12006142的技术博客_51CTO博客Oracle 11g RAC部署,Oracle11gRAC部署操作环境:CentOS7.4Oracle11.2.0.4一、主机网…...
Redis 字符串操作实战(全)
目录 SET 存入键值对 SETNX SETEX SETBIT SETRANGE MSET 批量存入键值对 MSETNX PSETEX BITCOUNT 计算值中1的数量 BITOP 与或非异或操作 DECR 减1 DECRBY APPEND 追加 INCR 自增 INCRBY INCRBYFLOAT GET 取值 GETBIT GETRANGE GETSET 取旧值赋新值 MGET …...
python LeetCode 88 刷题记录
题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并…...
基于 Socket 网络编程
基于 Socket 网络编程 前言一、基于Socket的网络通信传输(传输层)二、UDP 的数据报套接字编程1、UDP 套接字编程 API2、使用 UDP Socket 实现简单通信 三、TCP 流套接字编程1、TCP 流套接字编程 API2、使用 TCP Socket 实现简单通信3、使用 Tcp 协议进行…...
关于C#.Net网页跳转的7种方法
一、目前在ASP.NET中页面传值共有这么几种方式:1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新的页面,原窗口被代…...
使用acme.sh申请免费ssl证书(Cloudflare方式API自动验证增加DNS Record到期证书到期自动重新申请)
下载acme.sh curl https://get.acme.sh | sh -s emailmyexample.comcd ~/.acme.sh/获取Cloudflare密钥 Preferences | Cloudflare 登录选择账户详情选择API Token选择创建令牌选择区域DNS模板,并设置编辑写入权限生成并复制令牌备用回到首页概览界面下部获取账号…...
【C语言】进阶——结构体+枚举+联合
①前言: 在之前【C语言】初阶——结构体 ,简单介绍了结构体。而C语言中结构体的内容还有更深层次的内容。 一.结构体 结构体(struct)是由一系列具有相同类型或不同类型的数据项构成的数据集合,这些数据项称为结构体的成员。 1.结构体的声明 …...
独立站建站成本全解析
独立站建站费用构成独立站的费用主要分为域名注册、主机托管、网站建设、支付接口、营销推广和日常维护等几个部分。每个部分的费用因需求不同而有较大差异。域名注册费用通常在每年10至100美元之间,取决于域名后缀和注册商。常见的.com域名价格在10至20美元/年&…...
C++的std--filesystem文件系统库与跨平台路径处理的标准化
C的std::filesystem文件系统库与跨平台路径处理的标准化 在现代软件开发中,跨平台文件系统操作一直是一个复杂且容易出错的挑战。不同操作系统(如Windows、Linux和macOS)使用不同的路径分隔符和文件系统语义,开发者往往需要编写大…...
机械臂空间直线圆弧圆插补代码介绍
【机械臂空间直线&圆弧&圆插补】 代码主要功能: 1. 正逆运动学解析解; 2. 空间直线、圆弧以及圆插补; 3. 基于Slerp、Nlerp算法的机械臂末端两姿态插补算法; 4. 机械臂空间直线、圆弧以及圆插补。 购前须知: 1. 代码均为个人手写&…...
解决Python文件路径超长问题:Windows系统下的终极指南
解决Python文件路径超长问题:Windows系统下的终极指南 在Windows平台上开发Python应用时,文件路径长度限制是个令人头疼的"历史遗留问题"。记得第一次接手一个大型Python项目时,我花了整整两天时间才搞明白为什么某些文件总是无法读…...
OrCAD Capture CIS DRC矩阵设置实战:如何自定义ERC检查规则
OrCAD Capture CIS DRC矩阵深度定制指南:从基础配置到高阶规则设计 1. 理解DRC矩阵的核心价值与应用场景 在复杂电路设计领域,标准化的设计规则检查(DRC)往往无法满足特殊元件的连接验证需求。OrCAD Capture CIS的ERC矩阵功能正是为解决这一痛点而生——…...
Win11Debloat:Windows系统深度优化工具的全方位解决方案
Win11Debloat:Windows系统深度优化工具的全方位解决方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …...
昇腾310B4 NPU实战:用MindX SDK给Unet模型推理加速,并与CPU/ONNX Runtime性能全面对比
昇腾310B4 NPU实战:Unet模型推理加速与多平台性能深度评测 边缘计算设备的选择往往需要在性能、功耗和成本之间寻找平衡点。当我们手头有一块搭载昇腾310B4 NPU的香橙派AIpro开发板时,如何充分发挥其8TOPS算力优势?本文将以医学图像分割中广泛…...
2025届最火的十大降AI率方案实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下,关于AI生成内容的检测变得越发严格起来,于是降AI工具就相应地…...
源码级解耦:企业级 AI 视频平台的微服务架构设计与二次开发实战
引言:定制化需求的“最后一公里”难题 在安防 AI 项目的交付链条中,集成商和技术团队往往处于一个尴尬的境地:市面上的成熟 SaaS 平台虽然开箱即用,但缺乏核心的源码级定制能力,一旦遇到客户特殊的业务逻辑(…...
AMD Ryzen处理器深度调试指南:解锁硬件性能的终极利器
AMD Ryzen处理器深度调试指南:解锁硬件性能的终极利器 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…...
