input file 清空 react_React 搜索优化:防抖、缓存、LRU

本文介绍了在React项目中优化搜索功能的方法,包括使用debounce减少事件触发频率,避免频繁HTTP请求,以及应用LRU缓存策略。详细阐述了debounce的原理及React中实现的注意事项,同时也讨论了如何处理HTTP请求的缓存,以及实现LRU缓存淘汰机制来优化内存使用。
摘要由CSDN通过智能技术生成

像素摇摆

是一个分享 JavaScript、框架技术、面试问题、前端趋势等有价值文章的公众号

最近要主导 react 项目重构优化等相关的工作,由于有好长时间没碰 React 了,今天索性把一个基于关键字搜索的 demo 做一下简单优化,在此记录一下。

主要从三个方面进行优化处理:

  • 减少事件的触发频率 - 对关键字键入进行 debounce 处理
减少 HTTP 请求 - 对重复的 HTTP 请求进行缓存拦截缓存淘汰策略 - 使用 LRU 优化缓存

减少事件的触发频率 - debounce

debounce 旨在时间段内控制事件只在最后一次操作触发。

debounce 原理:是维护一个计时器,在规定的 delay 时间后触发函数,在 delay 时间内再次触发的话,就会取消之前的计时器而重新设置。这样一来,只有最后一次操作能被触发。

下面是 react 中 debounce 优化的代码:

...handler = e => {  let val = e.target.value;  if(val) {     this.search(val);  }  this.setState(() => ({    value: e.target.value  }))}debounce = (fn, delay) => {  let timer = null;  return function(event) {    timer && clearTimeout(timer);    ev
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值