UseEffect完整指南
useEffect 完整指南
每一次渲染都有它自己的 Props and State
当我们更新状态的时候,React 会重新渲染组件。每一次渲染都能拿到独立的
count
状态,这个状态值是函数中的一个常量。
每一次渲染都有它自己的事件处理函数
我们发现
count
在每一次函数调用中都是一个常量值。值得强调的是 — 我们的组件函数每次渲染都会被调用,但是每一次调用中count
值都是常量,并且它被赋予了当前渲染中的状态值。
所以实际上,每一次渲染都有一个“新版本”的handleAlertClick
。每一个版本的handleAlertClick
“记住” 了它自己的 count
:
每次渲染都有它自己的 Effects
我们已经知道count
是某个特定渲染中的常量。事件处理函数“看到”的是属于它那次特定渲染中的count
状态值。对于 effects 也同样如此:
并不是count
的值在“不变”的 effect 中发生了改变,而是effect 函数本身在每一次渲染中都不相同。
每一个 effect 版本“看到”的count
值都来自于它属于的那次渲染:
每一次渲染都有它自己的…所有
React 只会在浏览器绘制后运行 effects。这使得你的应用更流畅因为大多数 effects 并不会阻塞屏幕的更新。Effect 的清除同样被延迟了。上一次的 effect 会在重新渲染后被清除:
effect 的清除并不会读取“最新”的 props。它只能读取到定义它的那次渲染中的 props 值: