React 实现input输入框的防抖和节流

React 实现input输入框的防抖和节流

1.为什么使用防抖和节流
对于频繁触发的事件 比如keydown keyup事件 当频繁点击时候 会多次触发事件 页面出现卡顿 影响性能

2.函数防抖(debounce):间隔时间内只执行一次 函数节流(throttle):间隔时间内执行

3.使用场景
函数防抖:搜索框等
函数节流:鼠标不断点击事件等

4.目的

提升性能 提高用户体验

5.用react实现防抖和节流

刚好react脚手架是集成了lodash的

import throttle from 'lodash/throttle';

export default class Search extends Component {
    constructor(props) {
      super(props)
      this.handleSearch = throttle(this.handleSearch, 1000);//这里的间隔就是每xx时间内只执行一次该函数
    }
    handleSubmit = (e) => {
        e.preventDefault();
        this.handleSearch();
    }
    handleSearch = () => {
    ...
    }
    render() {
        return (
            <form onSubmit={this.handleSubmit}><form>
        )
    }
}
posted @ 2020-10-25 11:28  斯塔克林  阅读(1105)  评论(0编辑  收藏  举报