今天,在项目开发工程中需要使用防抖,下面跟大家分享下防抖和截流的基础知识,顺便分享一个踩到的坑。

一、防抖

直接上代码看的清楚:

/*** 防抖* @param {Function} fn* @param {Number} delay*/
export function _debounce(fn, delay = 200) {var timer;return function () {var args = arguments;if (timer) {clearTimeout(timer);}timer = setTimeout(() => {timer = null;fn.apply(this, args);}, delay);};
}

防抖,就是在单位时间内执行最后一次,按需使用。

二、截流

也是直接上代码:

/*** 截流* @param {Function} fn* @param {Number} interval*/
export function _throttle(fn, interval = 200) {var last;return function () {var args = arguments;var now = +new Date();if (!last || now - last > interval) {last = now;fn.apply(this, args);}}
}

截流,就是在设置的单位时间内只执行第一次,按需使用。

想了解防抖截流更详细的介绍和方法请移步:http://t.csdn.cn/pcRhN

如何使用!!!!

将方法import到vue组件中,然后:

    init: _debounce(function (val) {// 逻辑操作}, 1000)

在这里我踩了一个坑,我认为在使用中用箭头函数this的指向会是vue实例,所以一开始我的使用方法:

    init: _debounce((val) => {// 这里this是undefined}, 1000)

产生的原因就是:箭头函数没有this,函数中的this指向所处的上下文中的this,而且使用bind、apply、call等方法没办法修改,在上面的防抖和截流的方法中用apply修改this的指向未成功,所以在调用的方法中this为undefined。

vue中使用防抖和截流相关推荐

  1. Vue中使用防抖与截流

    Vue中使用防抖与截流 何为防抖/节流 防抖(debounce) 节流(throttle) 页面使用 使用场景 何为防抖/节流 首先先说说何为防抖与节流 防抖(debounce) 防抖就是一段时间内会 ...

  2. 输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流

    输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue 中使用防抖和节流 参考文章: (1)输入防抖 vue # 输入搜索的时候 及时搜索的快速访问接口的 解决方案 vue ...

  3. vue中的防抖和节流

    vue中的防抖和节流 防抖:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间. 使用场景:频繁触发.输入框搜索 因为防抖的特性,一直执行最后一次的触发,所以可以用于鼠 ...

  4. vue中的防抖函数写法

    vue中的methods // 防抖方法debounce(func,delay){let timer=nullreturn function (...args) {timer && c ...

  5. 前端优化中的防抖与截流

    1. 什么是防抖? 在事件触发后的指定时间之后,再去执行真正需要执行的函数,如果在该时间之内事件又被触发,则重新开始计时. 常见的应用场景: 1. 滚动事件触发: 2. 搜索框输入查询: 3. 表单验 ...

  6. vue中自定义指令、组件化、生命周期、节流和防抖、获取DOM、mint-ui简介、过渡和动画

    自定义指令: vue中通过directive方法自定义指令,如:自定义一个v-focus指令: <script>Vue.directive('focus', {//通过directive( ...

  7. vue中input如何实现防抖

    防抖函数的原理: 只有在事件触发的时候才会延迟加载,如果在延迟加载之前再次触发,则会刷新延迟时间重新延迟,触发次数有且只有触发一次: 使用场景: 防抖函数一般是用于频繁触发事件,而我们只需要它触发一次 ...

  8. Vue中实现输入框Input输入格式限制

    Vue中实现输入框Input输入格式限制 1.使用修饰符实现数字输入 在VUE中可以在v-modal后添加修饰符的形式来限制输入,比如: <input v-model.number=" ...

  9. JavaScript函数防抖与截流

    一.在前端开发当中,有些交互事件,会频繁触发.这样会导致我们的页面渲染性能,如果频繁触发接口调用的话,会直接导致服务器性能的浪费.      例如:键盘事件 keyup作为测试 <ul>& ...

最新文章

  1. 2021-2027年中国医疗美容市场研究及前瞻分析报告
  2. 网络编程学习笔记(SIGPIPE信号触发)
  3. [Android] 任意时刻从子线程切换到主线程的实现
  4. gradle项目 构建_使用Gradle构建Monorepo项目
  5. spark任务shell运行_大数据系列:Spark的工作原理及架构
  6. jsp用tags传递参数
  7. mysql1846错误_远程连接MySQL报错ERROR 2003解决办法
  8. java中jnum i .length,java数组和多维数组
  9. 自己动手写PHP MVC框架
  10. php的substr函数的作用是,PHP substr函数的实现功能技巧讲解
  11. java jar在电脑哪里_例举jar文件怎么打开
  12. 如何编辑SDE数据(转自ESRI中国社区)
  13. php读取excel文件_在PHP中读取Excel文件
  14. windows安装ssh服务
  15. 地址总线、数据总线、控制总线详细解释
  16. windows 安装应用时 弹出 another installation inprogress.you must complete that installation before continu
  17. 服务器终端性能测试之MBW内存测试
  18. 江苏计算机一级证书考试试题,2016年江苏省计算机一级考试试题
  19. JPA和Spring-Data-JPA简介
  20. 使用u盘PE系统重装Windows操作系统

热门文章

  1. mac node repl_如何使用Node.js REPL
  2. Netty 实现百万连接的难点和优化点
  3. Windows下缺少Android licenses的奇怪路径问题
  4. android app 短信接收,Android创建简单发送和接收短信应用
  5. Android - 接收、监听系统短信广播
  6. word2vec损失函数
  7. 【学术相关】博士开始内卷了吗?
  8. centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼
  9. 深度学习中的类别激活热图可视化
  10. 【PS功能学习】04:祖传抠图技法