通过实例学习React中事件节流防抖


Posted in Javascript onJune 17, 2019

节流

方法一

import Throttle from 'lodash-decorators/throttle';
export default class Search extends Component {
constructor(props) {
super(props)
this.handleSearch = this.handleSearch.bind(this);
}
handleSubmit = (e) => {
e.preventDefault();
this.handleSearch();
}
@Throttle(300)
handleSearch() {
...
}
render() {
return (
<form onSubmit={this.handleSubmit}><form>
)
}
}

方法二

import throttle from 'lodash/throttle';
export default class Search extends Component {
constructor(props) {
super(props)
this.handleSearch = throttle(this.handleSearch, 1000);
}
handleSubmit = (e) => {
e.preventDefault();
this.handleSearch();
}
handleSearch = () => {
...
}
render() {
return (
<form onSubmit={this.handleSubmit}><form>
)
}
}

防抖

写法类似。。。

区别

debounce 和 throttle 各有特点,在不同的场景要根据需求合理的选择。如果事件触发是高频但是有停顿时,可以选择debounce;在事件连续不断高频触发时,只能选择 throttle ,因为 debounce 可能会导致一段时间内动作只被执行一次,界面出现闪烁。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript加密解密7种方法总结分析
Oct 07 Javascript
Mootools 1.2教程 类(一)
Sep 15 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
解析jquery获取父窗口的元素
Jun 26 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
JS实现slide文字框缩放伸展效果代码
Nov 05 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
微信小程序在线客服自动回复功能(基于node)
Jul 03 Javascript
详解微信小程序图片地扯转base64解决方案
Aug 18 Javascript
JavaScript 事件捕获冒泡与捕获详情
Nov 11 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 #Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
Jun 17 #Javascript
通过js给网页加上水印背景实例
Jun 17 #Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 #Javascript
通过实例解析js简易模块加载器
Jun 17 #Javascript
如何从头实现一个node.js的koa框架
Jun 17 #Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 #Javascript
You might like
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
python实现的系统实用log类实例
2015/06/30 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Java里面如何创建一个内部类的实例
2015/01/19 面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
工作鉴定评语
2014/05/04 职场文书
面试通知邮件
2015/04/20 职场文书
医院党建工作总结2015
2015/05/26 职场文书
男生贾里读书笔记
2015/06/30 职场文书
python如何获取网络数据
2021/04/11 Python