类组件中,不用lodash怎么防抖
时间: 2024-02-28 13:54:33 浏览: 130
在vue+element ui框架里实现lodash的debounce防抖
在类组件中,可以使用JavaScript中的setTimeout函数来实现防抖。可以在类组件中定义一个实例变量timer,用来保存定时器的ID。然后在防抖函数中,每次调用时先清除之前的定时器,再重新设置一个新的定时器,保证在指定的时间间隔内只执行最后一次调用。以下是一个示例代码:
```javascript
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
inputValue: '',
};
this.timer = null;
}
handleInputChange = (e) => {
const newValue = e.target.value;
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.setState({ inputValue: newValue });
}, 500);
};
render() {
return (
<div>
<input type="text" onChange={this.handleInputChange} value={this.state.inputValue} />
</div>
);
}
}
```
在上面的代码中,handleInputChange函数就是防抖函数,它在500毫秒内只会执行最后一次调用。使用setTimeout函数而不是lodash的debounce函数可以减少外部依赖。
阅读全文