Open sfsoul opened 4 years ago
不要在循环,条件或嵌套函数中调用 Hook,确保总是在 React 函数的最顶层调用它们。
// error:在条件语句中使用 Hook 违反第一条规则
if (name !== '') {
useEffect(function persistForm() {
localStorage.setItem('formData', name);
});
}
// correct
useEffect(function persistForm() {
// 👍 将条件判断放置在 effect 中
if (name !== '') {
localStorage.setItem('formData', name);
}
});
不要在普通的 JavaScript 函数中调用 Hook,可以:
通过自定义 Hook,可以将组件逻辑提取到可重用的函数中。
Hook 简介
Hook 产生的动机
使用 Effect Hook
需要清除的 effect
按时间列出一个可能会产生的订阅和取消订阅操作调用序列: