严格模式
这些文档已经过时且不再更新,访问 zh-hans.react.dev 查看新的 React 文档。
这些文档使用新的 React 语法,并带有在线的运行示例:
StrictMode
是一个用来突出显示应用程序中潜在问题的工具。与 Fragment
一样,StrictMode
不会渲染任何可见的 UI。它为其后代元素触发额外的检查和警告。
注意:
严格模式检查仅在开发模式下运行;它们不会影响生产构建。
你可以为应用程序的任何部分启用严格模式。例如:
import React from 'react';
function ExampleApplication() {
return (
<div>
<Header />
<React.StrictMode> <div>
<ComponentOne />
<ComponentTwo />
</div>
</React.StrictMode> <Footer />
</div>
);
}
在上述的示例中,不会对 Header
和 Footer
组件运行严格模式检查。但是,ComponentOne
和 ComponentTwo
以及它们的所有后代元素都将进行检查。
StrictMode
目前有助于:
- 识别不安全的生命周期 {#identifying-unsafe-lifecycles}
- 关于使用过时字符串 ref API 的警告 {#warning-about-legacy-string-ref-api-usage}
- 关于使用废弃的 findDOMNode 方法的警告 {#warning-about-deprecated-finddomnode-usage}
- 检测意外的副作用 {#detecting-unexpected-side-effects}
- 检测过时的 context API {#detecting-legacy-context-api}
- 确保可复用的 state {#ensuring-reusable-state}
未来的 React 版本将添加更多额外功能。
识别不安全的生命周期
正如这篇博文所述,某些过时的生命周期方法在异步 React 应用程序中使用是不安全的。但是,如果你的应用程序使用了第三方库,很难确保它们不使用这些生命周期方法。幸运的是,严格模式可以帮助解决这个问题!
当启用严格模式时,React 会列出使用了不安全生命周期方法的所有 class 组件,并打印一条包含这些组件信息的警告消息,如下所示: