
eslint-plugin-react-hooks(索引)
ReactAPI 参考:ESLint 插件
eslint-plugin-react-hooks(索引)
eslint-plugin-react-hooks 提供 ESLint 规则来强制遵循 React 规则。
此插件可帮助你在构建时捕获违反 React 规则的问题,确保你的组件和 Hook 遵循 React 规则,以保证正确性和性能。这些 lint 规则既涵盖基础的 React 模式(如 exhaustive-deps 和 rules-of-hooks),也涵盖 React 编译器标记的问题。React 编译器的诊断信息会通过此 ESLint 插件自动呈现,即使你的应用尚未采用编译器,也依然可以使用这些诊断信息。
注意:当编译器报告诊断信息时,这意味着编译器能够静态检测到不受支持或违反 React 规则的模式。当检测到这种情况时,它会自动跳过这些组件和 Hook,同时保持应用其余部分的已编译状态。这确保了安全优化的最佳覆盖范围,不会破坏你的应用。
这对 lint 来说意味着,你不需要立即修复所有违规问题。按照你自己的节奏处理它们,以逐步增加优化组件的数量。
推荐规则
以下规则包含在 eslint-plugin-react-hooks 的 recommended 预设中:
exhaustive-deps- 验证 React Hook 的依赖数组是否包含所有必要的依赖rules-of-hooks- 验证组件和 Hook 是否遵循 Hook 规则component-hook-factories- 验证定义嵌套组件或 Hook 的高阶函数config- 验证编译器配置选项error-boundaries- 验证处理子组件错误时使用 Error Boundary 而不是 try/catchgating- 验证 gating 模式的配置globals- 验证渲染期间对全局变量的赋值/修改immutability- 验证是否修改 props、state 以及其他不可变值incompatible-library- 验证是否使用了与记忆化不兼容的库preserve-manual-memoization- 验证编译器是否保留了现有的手动记忆化purity- 通过检查已知的不纯函数来验证组件/Hook 是否纯净refs- 验证 refs 的正确用法,不在渲染期间读取/写入set-state-in-effect- 验证是否在 effect 中同步调用 setStateset-state-in-render- 验证渲染期间是否设置状态static-components- 验证组件是静态的,不会在每次渲染时重新创建unsupported-syntax- 验证是否存在 React 编译器不支持的语法use-memo- 验证useMemoHook 的使用是否缺少返回值
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
