vue中使用lodash的debounce(防抖函数)

server/2025/2/12 15:41:40/

1、安装

npm i --save lodash.debounce

2、引入

import debounce from 'lodash.debounce'

3、使用

<van-search v-model="searchValue" placeholder="输入姓名或工号" @input='handleInput' />

第一种:

handleInput: debounce(function (val) {console.log(val)
}, 200)

第二种:

handleInput(val) {console.log(val)
}
created() {this.handleInput = debounce(this.handleInput, 200) // 搜索框防抖
}

这两种使用方式效果一样

观察者防抖:

<template><input v-model="value" type="text" /><p>{{ value }}</p>
</template>
<script>
import debounce from "lodash.debounce";
export default {data() {return {value: "",};},watch: {value(...args) {this.debouncedWatch(...args);},},created() {this.debouncedWatch = debounce((newValue, oldValue) => {console.log('New value:', newValue);}, 500);},beforeUnmount() {this.debouncedWatch.cancel();},
};
</script>

事件处理器防抖:

<template><input v-on:input="debouncedHandler" type="text" />
</template>
<script>
import debounce from "lodash.debounce";
export default {created() {this.debouncedHandler = debounce(event => {console.log('New value:', event.target.value);}, 500);},beforeUnmount() {this.debouncedHandler.cancel();}
};
</script>

为什么不在method中写好方法,在template中直接调用,就像这样

<template><input v-on:input="debouncedHandler" type="text" />
</template>
<script>
import debounce from "lodash.debounce";
export default {methods: {// Don't do this!debouncedHandler: debounce(function(event) {console.log('New value:', event.target.value);}, 500)}
};
</script>

组件使用 export default { … } 导出的 options 对象,包括方法,会被组件实例重用。

如果网页中有 2 个以上的组件实例,那么所有的组件都会应用 相同 的防抖函数 methods.debouncedHandler — 这会导致防抖出现故障。


http://www.ppmy.cn/server/167095.html

相关文章

如何处理 React 中的错误边界?

在 React 中,错误边界是一种用于捕获子组件树中 JavaScript 错误的机制,允许你优雅地处理错误并防止整个应用崩溃。以下是如何创建和使用错误边界的步骤: 1. 创建错误边界组件 要创建错误边界组件,你需要实现 componentDidCatch 生命周期方法和 getDerivedStateFromError…

服务器使用centos7.9操作系统前需要做的准备工作

文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面&#xff0c;有需求的注释一些步骤。 备注&#xff1a;有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…

win32汇编环境,对线程的创建与操作示例二

;运行效果 ;win32汇编环境,对线程的创建与操作示例二 ;本文主要是实现用CreateThread创建线程时,如何把参数传入进去 ;以下举3个例子说明,如何把数值、字符串和自定义结构传入线程之中 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>…

WPS如何接入DeepSeek(通过JS宏调用)

WPS如何接入DeepSeek 一、文本扩写二、校对三、翻译 本文介绍如何通过 WPS JS宏调用 DeepSeek 大模型&#xff0c;实现自动化文本扩写、校对和翻译等功能。 一、文本扩写 1、随便打开一个word文档&#xff0c;点击工具栏“工具”。 2、点击“开发工具”。 3、点击“查看代码”…

网络工程师 (26)TCP/IP体系结构

一、层次 四层&#xff1a; 网络接口层&#xff1a;TCP/IP协议的最底层&#xff0c;负责网络层与硬件设备间的联系。该层协议非常多&#xff0c;包括逻辑链路和媒体访问控制&#xff0c;负责与物理传输的连接媒介打交道&#xff0c;主要功能是接收数据报&#xff0c;并把接收到…

Deepseek模拟阿里面试——java8新特性

在Java 8中&#xff0c;Lambda表达式、Stream API、默认方法、静态方法和Optional类等新特性极大地提升了代码的简洁性和功能性。以下是这些特性的详细解析和实际应用&#xff1a; Lambda表达式 Lambda表达式允许用简洁的方式编写匿名函数&#xff0c;适用于函数式接口&#x…

bash shell笔记——循环结构

0 引言 本文主要介绍linux bash shell循环结构的基本使用 1 测试环境 查看系统版本&#xff1a; uname -a : Ubuntu 18.04 查看bash版本&#xff1a; bash -version : GNU bash, version 4.4.20(1)-release 创建.sh文件&#xff1a; vim 00test.sh 修改00test.sh权限&…

C语言————快速幂

在 C 语言中&#xff0c;快速幂是一种用于高效计算幂运算&#xff08;即 &#xff0c;其中 a是底数base&#xff0c;n 是指数power&#xff09;的算法。常规的幂运算方法是通过循环将底数a连乘n次&#xff0c;时间复杂度为O(n)。而快速幂算法利用了指数的二进制特性&#xff0c…