我读过Hooks at a Glance,我明白了为什么:
- 钩子只能在顶层声明
- 钩子名称应以
use
开头
但他们没有谈论渲染引擎是如何更新的。和类一样吗?如果是,它们如何"绑定"状态并触发 DOM 更新?
阅读Dan Abramov的这篇文章:overreacted.io/how-does-setstate-know-what-to-do。正如他在信中所说:
"当人们第一次看到 Hooks 提案 API 时,他们经常想知道: 使用状态如何"知道该怎么做"?假设它更多 "神奇"比一个基本的 React.Component 类与 this.setState((。但 正如我们今天所看到的,基类 setState(( 实现具有 一直都是幻觉。除了转发之外,它不做任何事情 对当前呈现器的调用。并且使用状态钩子完全做到了 同样的事情。