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

React中hooks使用限制及保存函数组件状态

React Hooks 的限制主要有两条:

  • 不要在循环、条件或嵌套函数中调用 Hook;

  • 在 React 的函数组件中调用 Hook。

首先,Hooks是一个对象,大致结构如下:

const hook: Hook = {memoizedState: null,baseState: null,baseQueue: null,queue: null,next: null,  // 指向下一个hook
};

不同类型hook的memoizedState保存不同类型数据,例如:

useState:对于const [state, updateState] = useState(initialState),memoizedState保存state的值

useReducer:对于const [state, dispatch] = useReducer(reducer, {});,memoizedState保存state的值。

一个组件中的hook会以链表的形式串起来,其中:

fiberNode.memoizedState:所保存的是Hook链表里面的第一个链表

hook.memoizedState:某个hook自身的数据

在更新时,会复用之前的Hook,若通过if条件语句或者增加或者删除hooks,在复用hooks时,会产生复用hooks状态和当前hooks不一致的问题。

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

相关文章:

  • 用git命令来上传项目到GitHub我自己的仓库
  • .NET有哪些微服务框架
  • uniapp中打开蓝牙需要哪些权限
  • virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”
  • 【JVM篇】什么是运行时数据区
  • Jetpack 之Glance+Compose实现一个小组件
  • 实时矢量搜索如何彻底改变各行各业?
  • 【Linux】指令 【scp】
  • 文件IO,目录IO的学习
  • leetcode(动态规划)53.最大子数组和(C++详细解释)DAY12
  • BUGKU-WEB bp
  • 代码的复用——Mixin使用例子
  • easyx 枪声模拟器
  • python 与 neo4j 交互(py2neo 使用)
  • Python基础笔记11
  • vulhub中Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)
  • 智慧城市驿站:智慧公厕升级版,打造现代化城市生活的便捷配套
  • 大模型爆款应用fabric_构建优雅的提示
  • js 对象属性描述符详解
  • 文件操作QFile
  • 【Langchain】+ 【baichuan】实现领域知识库【RAG】问答系统
  • Anaconda、conda、pip、virtualenv的区别
  • 【数据结构】每天五分钟,快速入门数据结构(一)——数组
  • NBlog个人博客部署维护过程记录 -- 后端springboot + 前端vue
  • WireShark 安装指南:详细安装步骤和使用技巧
  • PyTorch detach():深入解析与实战应用
  • uniapp 开发一个密码管理app
  • Postman详细攻略
  • 如何在本地服务器部署TeslaMate并远程查看特斯拉汽车数据无需公网ip
  • 如何在CentOS安装SQL Server数据库并实现无公网ip环境远程连接