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

React-Hook原理

前置知识

闭包

在 Hook 的应用比如 dispatch 函数,也就是 useState 返回的第二个参数

闭包是指有权访问另一个函数作用域中变量或方法的函数,创建闭包的方式就是在一个函数内创建闭包函数,通过闭包函数访问这个函数的局部变量, 利用闭包可以突破作用链域的特性,将函数内部的变量和方法传递到外部。

单链表

A–>B–>C。Fiber 架构通过使用这种数据结构,实现了 render 过程的可中断性。比如更新了 B 节点,突然有高优先级插入,这个时候只需要记住当前更新到的节点是 B 即可,然后去执行高优任务,之后再从 B 节点继续更新

Fiber & Hook

Fiber 对象和 Hook 对象的关系如下图:
Fiber & Hook

Fiber 架构

React 16 引入了 Fiber 架构,会基于 ReactElement 生成唯一的 Fiber 对象。在更新阶段,会基于旧的 Fiber 链表创建一个新的 Fiber 链表(如下图),可以复用旧的对象,并且获取旧 Hook 的状态

fiber双链表


http://www.mrgr.cn/news/29870.html

相关文章:

  • 数据库系统原理与应用【笔记总结】
  • Linux(Ubuntu)(终端实现helloworld输出)
  • 深入理解Spring中请求作用域的数据存储:ThreadLocal还是Spring容器?
  • javascript-数据类型
  • Cursor免费 GPT-4 IDE 工具的保姆级使用教程
  • Unity从2018.1版本开始,可以采用内置JSON进行存档和读档
  • Linux中权限和指令
  • 闯关leetcode——35. Search Insert Position
  • windows C++ 并行编程-异步消息块(一)
  • Linux驱动开发 ——架构体系
  • JDBC编程详细总结
  • 「C++系列」异常处理
  • 速盾:凡科建站开cdn了吗?
  • 【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?
  • 硬件开篇——体系架构
  • 408算法题leetcode--第八天
  • [Redis][Redis简介]详细讲解
  • 【无标题】Java_Se 数据变量与运算符
  • Linux C高级 day1
  • 7.7opencv中(基于C++) 翻转图像