首页 > 其他分享 >input输入框 防抖

input输入框 防抖

时间:2024-07-18 15:31:48浏览次数:17  
标签:防抖 函数 timer initTableData 输入框 searchData input

1 什么是防抖
防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始计时。

为了避免用户在输入过程中,还没输入完,下面搜索框就一直频繁的在搜索,体验很差。

2 防抖解决方案
首先需要把input 的双向绑定v-mode 拆开为 一个value 和一个input事件,在事件里注册一个函数searchData,searchData里获取到input输入内容,再执行搜索函数,代码如下:

<template>
  <div class="box">
    <el-input class="keyword-filter" v-model="params.name" placeholder="请输入关键字进行过滤" @input="debUpdata"
      @keyup.enter.native="keyWordFilter" suffix-icon="el-icon-search"></el-input>
  </div>
</template>
<script>
export default {
  name: "index",
  data() {
    return {
      params: {
        name: ""
      },
      timer: null,
    }
  },
  mounted() {
    this.initTableData()
  },
  methods: {
    this.initTableData(){     
    },
    keyWordFilter() {
      this.initTableData()
    },
    //输入框防抖搜索
    searchData(e) {
      clearTimeout(this.timer);
      this.timer = setTimeout(() => {
        this.initTableData()//查询表格内容的函数,此处省略
      }, 300);
        //后面数为多少毫秒不变之后执行
    }
  },
}
</script>

所谓防抖,无非就是让数据的变化延迟执行,所以在searchData内定义一个timer,每一次执行函数的时候先清空timer,然后在使用setTimeout 定时一秒之后,在执行搜索函数,就实现了最基础的防抖,主要实现代码效果如下:

 

标签:防抖,函数,timer,initTableData,输入框,searchData,input
From: https://www.cnblogs.com/mmzuo-798/p/18309616

相关文章

  • 防抖和节流
    1.防抖,回城-执行完成区间计时的一次限时内,多次触发,只执行最后一次,并清空计时器。未计时完就一直清除计时器。思路:利用闭包,保存回调函数的计时器。判断计时器是否存在,是-清除原计时器。计时器内调用事件处理函数。注意:这里要搞清楚返回的匿名函数才是绑定的点击事件,而非d......
  • 更改文件导致MalformedInputException
    1.异常复现工具及组件版本IDE:IDEA2023.3.2(UltimateEdition)JDK:11SpringBoot:2.7.8报错场景复现编辑application.yml文件后,SpringBoot项目启动失败,报错java.nio.charset.MalformedInputException错误信息如下:org.yaml.snakeyaml.error.YAMLException:java.nio.charse......
  • 低开开发笔记(八): 低代码编辑器实现撤销回退(命令模式,防抖处理)
    好家伙, 0.代码已开源https://github.com/Fattiger4399/ph_questionnaire-.git 1.事件触发我们先从事件的触发开始讲起大致上我们有两个思路可以选择1.监控用户行为2.监控数据变化 两种选择都会有较难处理的部分,这里我们先选第二个选项 关于监控数据,首......
  • Python教程:input接受输入
    Python中input()函数接受一个标准输入数据,返回为字符类型。无论是int、float、list等,在输入的时候,都是以字符串存储。使用语法:a=input([prompt])#提示信息等待用户输入1.接受一个值a=input('input:')#input:100type(a)#strb=input()#abctype(b)#s......
  • java InputStream read使用及读取数据注意
    publicabstractintread()throwsIOException;从输入流中读取下一个字节的数据。值字节以int的形式返回,范围在0-255之间。如果由于到达流的末尾而没有字节可用,则返回值-1。此方法会一直阻塞,直到输入数据可用、检测到流结束或抛出异常为止。 publicintread(byteb[],i......
  • 实现一个 AI 聊天输入框:从基础到高级的指南
    引言随着人工智能和自然语言处理(NLP)技术的快速发展,基于AI的聊天系统变得越来越普遍。无论是简单的问答系统还是复杂的客服聊天机器人,聊天输入框都是用户与系统交互的关键组件。本文将详细介绍如何实现一个功能丰富的AI聊天输入框,从基础组件到高级功能,包括用户输入处理、界......
  • WPF customize DelegateCommand via implementation interface System.Windows.Input.
    publicclassDelCmd:ICommand{privatereadonlyAction<Object>execute;privatereadonlyPredicate<Object>canExecute;publicDelCmd(Action<object>executeValue,Predicate<object>canExecuteValue){execut......
  • Unity入门之重要组件和API(4) : Input
    前言Input类主要处理用户输入设备相关操作;输入设备包括鼠标、键盘、触屏、手柄、陀螺仪(重力感应)。1.鼠标1.1鼠标在屏幕的位置print(Input.mousePosition);1.2检测鼠标输入0-左键1-右键2-中键if(Input.GetMouseButtonDown(0)){ print("鼠标按下");}if(Input......
  • 固定表头和首列,防抖节流
    <style>#SetLimitAddtd{line-height:20px;padding-top:5px;padding-bottom:5px;}#wrapper{}.container-fluid{width:1747px;/*实际显示区域*/overflow-x:auto;padding-right:auto;......
  • 微信小程序开发--获取输入框input的值的两种方式
    在微信小程序中,可以通过以下几种方式来获取输入框的值:方式1:使用bindinput绑定输入事件,通过event.detail.value获取输入框的值。具体操作如下:<inputbindinput="onInput"placeholder="请输入内容"></input>Page({onInput:function(event){varvalue=event.detail;......