热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue实现防抖,vue使用防抖函数

vue实现防抖,vue使用防抖函数防抖和节流是开发过程中常用的性能优化方式,可以减少不必要的计算,不浪费资源,只

  vue实现防抖,vue使用防抖函数

  防抖和节流是开发过程中常用的性能优化方式,可以减少不必要的计算,不浪费资源,只在适当的时候触发计算。本文主要介绍vue中使用防抖和节流的相关信息,有需要的朋友可以参考一下。

  

目录

  前言概念使用场景代码的防抖定义使用节流定义使用场景代码使用vue中的摘要

  

前言

  在一个电影项目中,我想保存下拉在电影列表中的当前位置,以免你切换页面后再切换回当前电影列表页面,他会返回到电影的第一个数据。

  这时候我不想每滑一点就保存当前位置。偶尔也想挽回一下。这个时候我可以用防抖和节流。

  

概念

  说白了,防抖节流就是用定时器来达到我们的目的。

  防抖(debounce):

  事件触发n秒后,将执行回调。如果在n秒内再次触发,计时器将重新计时。

  一个典型的案例是输入框搜索:输入结束后n秒发出搜索请求,n秒内输入的内容再次计时。

  节流(throttle):

  规定一个功能在单位时间内只能触发一次。如果一个功能在这个单位时间内被多次触发,那么只有一个功能会生效。

  典型的情况是鼠标连续点击触发,规定N秒内多次点击只生效一次。

  

防抖

  

定义

  频繁操作以防止抖动。如果你在操作后N秒内没有操作,事件就会被触发。如果继续操作,会再次计时。

  

使用场景

  输入接线盒

  缩放调整大小

  

代码

  //utils.js

  immediate是否立即开始执行?

  函数去抖(func,delay=300,immediate=false) {

  让定时器=空

  返回函数(){

  if(计时器){

  清除超时(定时器)

  }

  如果(立即!计时器){

  func.apply(这,参数)

  }

  timer=setTimeout(()={

  func.apply(这,参数)

  },延迟)

  }

  }

  

在vue中使用

  方法1:在公共方法utils中编写并介绍它。

  从“实用程序”导入{去抖}

  方法:{

  app search:de bounce(function(e . target . value){

  this.handleSearch(值)

  }, 1000),

  handleSearch(值){

  console.log(值)

  }

  }

  方法2:将其写入当前vue文件

  数据:()={

  返回{

  去抖输入:()={}

  }

  },

  方法:{

  showApp(值){

  console.log(值,值)

  },

  去抖(func,delay=300,immediate=false) {

  让定时器=空

  返回函数(){

  if(计时器){

  清除超时(定时器)

  }

  如果(立即!计时器){

  func.apply(这,参数)

  }

  timer=setTimeout(()={

  func.apply(这,参数)

  },延迟)

  }

  }

  },

  已安装(){

  this . de bounce input=this . de bounce(this . show app,1000)

  },

  

节流

  

定义

  稀释功能频繁执行,频繁操作时每N秒触发一次。

  

使用场景

  每单位时间只单击鼠标一次。

  滚动事件、延迟加载、滚动加载、加载更多或监听滚动条位置

  防止高频点击提交,防止表单重复提交。

  

代码

  //utils.js

  功能节流(func,delay=300) {

  让prev=0

  返回函数(){

  let now=Date.now()

  if((当前-先前)=延迟){

  func.apply(这,参数)

  prev=Date.now()

  }

  }

  }

  

在vue中使用

  使用与防抖相同的方法

  

总结

  关于vue中防抖和节流的使用,这篇文章就到这里了。关于vue中防抖和节流使用的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!



推荐阅读
  • vue使用
    关键词: ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
verde公寓_401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有