Vue3指令:搜索框输入防抖实现(附源码)

在Vue3中,我们可以使用v-debounce指令来实现搜索框输入防抖。首先,我们需要安装一个名为lodash.debounce的库,然后创建一个自定义指令v-debounce

  1. 安装lodash.debounce库:
npm install lodash.debounce --save
  1. 创建一个自定义指令v-debounce
// 导入lodash库
import { debounce } from 'lodash';// 创建一个自定义指令v-debounce
export default {// 注册指令directives: {debounce: {// 当指令绑定的元素被插入到DOM时执行inserted(el, binding) {// 获取用户传入的参数,例如延迟时间、事件处理函数等const { value = 300, arg = 'input' } = binding.value;// 使用lodash的debounce方法创建防抖函数const debouncedFn = debounce(binding.handler, value);// 将防抖函数赋值给元素的事件处理函数el.addEventListener(arg, debouncedFn);},// 当指令所在的组件被销毁时执行unbind(el) {// 移除元素上的事件监听器el.removeEventListener('input', el._v_debounce);}}}
};
  1. 在Vue组件中使用v-debounce指令:
<template><div><input type="text" v-model="searchText" v-debounce:input="handleSearch"><ul><li v-for="item in filteredList" :key="item.id">{{ item.name }}</li></ul></div>
</template><script>
import vDebounce from './v-debounce'; // 导入自定义指令v-debounce
export default {name: 'SearchComponent',directives: {debounce: vDebounce // 注册自定义指令v-debounce},data() {return {searchText: '', // 搜索框中的文本list: [ // 原始数据列表,用于模拟搜索功能{ id: 1, name: '苹果' },{ id: 2, name: '香蕉' },{ id: 3, name: '橙子' },{ id: 4, name: '葡萄' }]};},computed: {filteredList() { // 根据搜索文本过滤数据列表的方法return this.list.filter(item => item.name.includes(this.searchText));}},methods: {handleSearch() { // 搜索方法,根据过滤后的数据列表更新页面显示的内容console.log('搜索内容:', this.searchText); // 打印搜索内容到控制台,方便调试和查看效果}}
};
</script>

这样,我们就实现了一个基于Vue3的搜索框输入防抖功能。当用户在搜索框中输入时,会触发防抖函数,延迟一段时间后再执行搜索方法。这样可以有效减少搜索方法的执行次数,提高性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【TC3xx芯片】TC3xx芯片的Clock System功能详解

目录 前言 正文 1.时钟源 1.1 有源晶振和无源晶振 1.1.1 无源晶振 1.1.2 有源晶振 1.1.3 有源晶振和无源晶振的区别 1.1 振荡器电路&#xff08;OSC&#xff09; 1.1.1外部输入时钟模式 1.1.2 外部晶体 / 陶瓷谐振器模式 1.1.3 OSC控制寄存器 1.1.4 配置OSC 1.1.5…

LeetCode(35)螺旋矩阵【矩阵】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 54. 螺旋矩阵 1.题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a…

仿制剧情吧网站源码 帝国CMS剧情介绍模板

帝国CMS7.5剧情介绍模板&#xff0c;仿制剧情吧网站的风格。该模板并非用于直接播放电影&#xff0c;而是用文字描述剧情&#xff0c;同时包含手机版。本站免费分享供站长学习研究使用。采用伪静态技术&#xff0c;无需生成HTML。出于美观考虑&#xff0c;自带数据仅供本地环境…

springboot(ssm大学生家教管理系统 在线家教平台Java(codeLW)

springboot(ssm大学生家教管理系统 在线家教平台Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&…

【古月居《ros入门21讲》学习笔记】13_服务数据的定义与使用

目录 说明&#xff1a; 1. 服务模型 2. 实现过程&#xff08;C&#xff09; 自定义服务数据 Person.srv文件内容 Person.srv文件内容说明 编译配置 在package.xml文件中添加功能包依赖 在CMakeLists.txt中添加编译选项 编译生成语言相关文件 创建服务器代码&#xf…

环境变量、0.0.0.0和localhost和127.0.0.1的区别、get请求能不能携带请求体

【1】环境变量 环境变量&#xff1a;为了满足不同的应用场景而预先在系统内设置的一堆全局变量 作用&#xff1a; 当系统运行一个程序但没有告诉程序所在的完整路径是&#xff0c;他会在当前目录查找&#xff0c;当前目录没有找到&#xff0c;它会去环境变量(path)中查找 环境变…

Kafka 保证消息消费全局顺序性

当有消息被生产出来的时候&#xff0c;如果没有指定分区或者指定 key &#xff0c;那么消费会按照【轮询】的方式均匀地分配到所有可用分区中&#xff0c;但不一定按照分区顺序来分配 我们知道&#xff0c;在 Kafka 中消费者可以订阅一个或多个主题&#xff0c;并被分配一个或多…

SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件

&#x1f4d1;前言 本文主要是【Rabbitmq】——SpringBoot项目整合Redis&#xff0c;Rabbitmq发送、消费、存储邮件的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页…

安防视频监控/视频融合/云存储EasyCVR页面数据显示不全该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

22-Python与设计模式--状态模式

23种计模式之 前言 &#xff08;5&#xff09;单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、&#xff08;11&#xff09;策略模式、责任链模式、命令模式、中介者模…

JSON非常慢:这里有更快的替代方案

是的&#xff0c;你没听错&#xff01;JSON&#xff0c;这种在网络开发中普遍用于数据交换的格式&#xff0c;可能正在拖慢我们的应用程序。在速度和响应性至关重要的世界里&#xff0c;检查 JSON 的性能影响至关重要。在这篇博客中&#xff0c;深入探讨 JSON 可能成为应用程序…

python环境的搭建+pytharm安装教程

一、Anaconda安装 1、去官网下载anaconda >百度搜索anaconda按回车键 >找到官网地址进去&#xff08;注意看网址&#xff09; >下载位置 2、安装anaconda 具体就安装步骤就不演示了&#xff08;写文章时已经安装好了&#xff09; 二、pycharm安装 1、去官网下载py…

编程中的技术难题:如何解密隐藏的恶魔

编程&#xff0c;作为现代社会中不可或缺的一项技能&#xff0c;承担着数字化时代的重要任务。然而&#xff0c;在编写代码的过程中&#xff0c;程序员们往往面临着一道道技术难题&#xff0c;这些问题就如同隐藏的恶魔&#xff0c;时刻考验着他们的智慧和解决能力。本文将探讨…

Jmeter--如何监控服务器资源

在我们做项目的性能测试时&#xff0c;需要查看相关服务器的资源使用情况&#xff1b;本文以apache-Jmeter-5.5版本为例&#xff0c;使用PerfMon进行服务器资源监控的方案由两部分来实现&#xff1a;ServerAgent部署在被测服务器&#xff0c;负责资源耗用数据的采集&#xff0c…

代码随想录算法训练营第四十九天【动态规划part10】 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路&#xff1a; 动规五部曲 确定dp数组及其下标含义&#xff1a;使用一个二维数组dp[i][2]&#xff0c;dp[i][0]代表持有股票的最大收益&…

【C++】类型转换 ⑤ ( 常量和非常量之间的类型转换 - 常量类型转换 const_cast | const 左数右指原则 | 代码示例 )

文章目录 一、const 关键字简介1、const 修饰普通数据2、const 修饰指针 ( 左数右指原则 | 指针常量 | 常量指针 ) 二、常量和非常量 之间的类型转换 - 常量类型转换 const_cast1、常量类型转换 const_cast2、常量不能直接修改3、修改常量值的方法4、特别注意 - 确保指针指向的…

【离散数学】——期末刷题题库(命题逻辑)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

在CI/CD中使用submodule

背景信息 客户的submodule使用的是ssh协议拉取 前置操作 gitlab添加子模块 git clone ssh://gitkube.bdeet.top:2222/cicd/123.git cd 123/ ls -la git submodule add ssh://gitkube.bdeet.top:2222/approve/test-1.git git submodule add ssh://gitkube.bdeet.top:2222/mr…

java三大集合类--List

List Set Map 一、List 几个小问题&#xff1a; 1、接口可以被继承吗&#xff1f;&#xff08;可以&#xff09; 2、接口可以被多个类实现吗&#xff1f;&#xff08;可以&#xff09; 3、以下两种写法有什么区别&#xff1f; //List list1new List();是错误的因为List()…

数据治理技术:研究现状与数据规范

随着信息技术的迅速发展,数据规模逐渐扩大&#xff0c;与此同时&#xff0c;劣质数据也随之而来&#xff0c;极大地降低了数据挖掘的质量&#xff0c;对信息社会造成了严重的困扰&#xff0c;劣质数据大量存在于很多领域和机构&#xff0c;国外权威机构的统计表明&#xff1a;美…