侧边栏壁纸
博主头像
早日退休博主等级

什么时候不更新了,就是退休去了

  • 累计撰写 42 篇文章
  • 累计创建 6 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

React 小知识

管理员
2023-10-09 / 0 评论 / 0 点赞 / 13 阅读 / 2018 字

useState 和 useRef 区别

当调用 setState 时,react 是异步更新 state 的,如果 setState 后立即获取 state 的值,此时 state 尚未更新,因此为旧的状态

useRef 总共有两种用法:

  1、获取子组件的实例

   2、在函数组件中的一个全局变量,不会因为重复 render 重复申明, 类似于类组件的 this.xxx

  有些情况下,我们需要保证函数组件每次 render 之后,某些变量不会被重复申明,比如说 Dom 节点,定时器的 id 等等

  在类组件中,我们完全可以通过给类添加一个自定义属性来保留,比如说 this.xxx, 但是函数组件没有 this,我们就需要使用 useRef 来实现

区别:

  1、useState 触发重新渲染,useRef 不触发

  2、useState 异步更新其值,useRef 同步更新

防抖和节流

  • 节流: n 秒内只运行一次,若在 n 秒内重复触发,只有一次生效

  • 防抖: n 秒后再执行该事件,若在 n 秒内被重复触发,则重新计时

应用场景

防抖在连续的事件,只需触发一次回调的场景有:

  • 搜索框搜索输入。只需用户最后一次输入完,再发送请求

  • 手机号、邮箱验证输入检测

  • 窗口大小resize。只需窗口调整完成后,计算窗口大小。防止重复渲染。

节流在间隔一段时间执行一次回调的场景有:

  • 滚动加载,加载更多或滚到底部监听

  • 搜索框,搜索联想功能

0

评论区