当前位置: 首页 > article >正文

hook组件-useEffect、useRef

hook组件-useEffect、useRef

useEffect

用法及执行机制

WillMount -> render -> DidMount

ShouldUpdate -> WillUpdate -> render -> DidUpdate

WillUnmount(只有这个安全) WillReceiveProps

  • useEffect(callback) 默认所有依赖都更新
  • useEffect(callback, []),空依赖所以无依赖
  • useEffect(callback, [xxx]),指定依赖

  • 返回一个小函数,会在组件释放的时候执行。

*effect链表

会把callback或者返回的小函数加入effect链表中,然后按照规则执行。

执行自己的链表之前,把上次链表中需要执行的执行。

不能被嵌入条件和循环中

callback的返回值只能是一个函数。被async修饰了,返回的是一个promise所以不行。

与useLayoutEffect的区别

layoutEffect的执行时机,virtual dom生成的时候。

更准确地说,是在浏览器绘制渲染之前。

视图更新四步走:

useRef

状态 生命周期,ref。

3种情况:

  1. 标签。dom元素。
  2. 类组件。该类组件实例。
  3. 函数组件。配合React.forwardRef,拿到的是函数组件中的某个dom元素。

类组件中ref的使用方法

ref是一个函数,最推荐的方法。

函数组件中的ref用法。但这种不推荐。

创建一个ref对象。useRef创建一个ref对象。

特点:

useRef重新执行不会再生成新的。react类组件重新更新只是重新执行render,不会重新创建实例,对ref对象没有影响。

使用ref的作用:

本组件dom元素。

类组件实例。

配合forwardRef获得函数组件中的某个元素。

useImpretiveHandle

通过return暴露需要返回父组件的内容

http://www.lryc.cn/news/2397450.html

相关文章:

  • 功能结构整理
  • 企业级开发中的 maven-mvnd 应用实践
  • yolov12毕设前置知识准备 1
  • 随机游动算法解决kSAT问题
  • 《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡
  • azure web app创建分步指南系列之一
  • PyTorch实战——基于生成对抗网络生成服饰图像
  • 笔试强训:Day6
  • 【Hexo】4.Hexo 博客文章进行加密
  • Android --- ObjectAnimator 和 TranslateAnimation有什么区别
  • 小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下
  • 安卓添加设备节点权限和selinux访问权限
  • 谷歌Stitch:AI赋能UI设计,免费高效新利器
  • 运营商地址和ip属地一样吗?怎么样更改ip属地地址
  • 在QT中,利用charts库绘制FFT图形
  • ChatGPT + 知网 + 知乎,如何高效整合信息写出一篇专业内容?
  • 流媒体协议分析:流媒体传输的基石
  • vscode中让文件夹一直保持展开不折叠
  • JAVA-springboot整合Mybatis
  • 深度学习pycharm debug
  • MicroPython+L298N+ESP32控制电机转速
  • Hive的存储格式如何优化?
  • 在部署了一台mysql5.7的机器上部署mysql8.0.35
  • OpenCV CUDA模块结构分析与形状描述符------在 GPU 上计算图像的原始矩(spatial moments)函数spatialMoments()
  • QT入门学习(一)---新建工程与、信号与槽
  • UE5.4.4+Rider2024.3.7开发环境配置
  • Windows环境下PHP,在PowerShell控制台输出中文乱码
  • 第2篇:数据库连接池原理与自定义连接池开发实践
  • 性能优化 - 理论篇:性能优化的七类技术手段
  • 华为IP(7)