当前位置: 首页 > article >正文

vue3如何实现防抖?

第一 防抖就是我们设置一个调用时间,点击后设置时间开始倒计时,如果再次点击会重新倒计时
  npm或yarn安装:
 

npm install lodash
<template>
  <div @click="debouncedInputHandler">
    <button>打印</button>
    <!-- 输入框,例如:<input type="text" v-model="inputValue" /> -->
    <!-- 注意:这里的 v-model 和 input 事件是为了示例,实际使用时请根据需求调整 -->
  </div>
</template>

<script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue';
import _ from 'lodash';

// 定义一个响应式变量来存储输入框的值(实际使用时需要添加输入框和 v-model 绑定)
const inputValue = ref('');

// 定义原始的输入处理函数
const inputHandler = () => {
  console.log("新增成功");
  
  // 在这里处理输入事件
};

// 使用 lodash 的 debounce 函数创建防抖函数
let debouncedInputHandler;

onMounted(() => {
  debouncedInputHandler = _.debounce(inputHandler, 1000); // 每 300 毫秒最多调用一次
});

// 监听输入事件,并调用防抖后的处理函数
// 注意:这里的监听应该是通过 v-model 绑定的 input 事件,或者你可以手动添加一个 input 事件监听器到模板中的输入框上
// 由于 <script setup> 不支持直接访问 DOM,因此通常你会使用 v-model 或通过 ref 引用 DOM 元素并手动添加事件监听器
// 但为了简化示例,这里假设你已经有了某种方式来触发这个防抖函数
// 在实际代码中,你应该将下面的代码替换为对输入框的 @input 事件的监听,例如:<input @input="debouncedInputHandler" v-model="inputValue" />
// 由于模板部分已经假设了 @input 绑定,这里我们不再重复添加事件监听器代码。

// 在组件卸载前取消防抖函数
onBeforeUnmount(() => {
  if (debouncedInputHandler.cancel) {
    debouncedInputHandler.cancel();
  }
});
</script>

<!-- 注意:这里的模板部分需要根据你的实际输入框进行调整 -->
<!-- 例如: -->
<!-- <template> -->
<!--   <input type="text" v-model="inputValue" @input="debouncedInputHandler" /> -->
<!-- </template> -->


http://www.kler.cn/a/469044.html

相关文章:

  • 深入刨析数据结构之排序(上)
  • 嵌入式硬件设计的基本流程
  • 新年到了!使用Python创建一个简易的接金元宝游戏
  • maven的pom.xml配置详解
  • 君正T41交叉编译ffmpeg、opencv并做h264软解,利用君正SDK做h264硬件编码
  • windeployqt.exe打包qt程序总结(MSVC)
  • atrust异常导致ERR_NETWORK_CHANGED
  • 2025-01-04 Unity插件 YodaSheet2 —— 基础用法
  • vscode中设置默认格式化工具pretter
  • 【图像处理】数据集合集!
  • 【软考网工笔记】计算机基础理论与安全——网络安全
  • 借助提示词工程,解锁高效应用开发之道
  • 计算机网络--UDP和TCP课后习题
  • 限时特惠,香港服务器,低至53元/年
  • 数据结构漫游记:初识栈(stack)
  • 探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)
  • 超大规模分类(二):InfoNCE
  • ffmpeg之yuv格式转h264
  • 人工智能-Python网络编程-TCP
  • 数据库基础:SQL 与 NoSQL 的区别与应用场景
  • BERT的中文问答系统61
  • 桌面开发 的设计模式(Design Patterns)核心知识
  • Qt实现使用TCP与RS485串口设备通信————附带详细实践方法
  • KCP技术原理
  • HTML——77.网页编码及乱码处理
  • 深度学习之父