StrictMode
是一个工具,用于突出应用程序中的潜在问题。与 Fragment
类似,StrictMode
不呈现任何可见 UI。它为它的后代启动额外的检查和警告。
import React from 'react';
function ExampleApplication() {
return (
<div>
<Header />
<React.StrictMode>
<div>
<ComponentOne />
<ComponentTwo />
</div>
</React.StrictMode>
<Footer />
</div>
);
}
- 识别不安全的生命周期
- 警告使用遗留字符串
ref
API - Detecting unexpected side effects
- Detecting legacy context API
- Detecting unexpected side effects:
react
一般分为两个阶段render | parse
。render
阶段将新旧render
的结果对比,得到哪些需要更新。commit
阶段是react
需要应用任何更改的时候, 就是更新阶段, 在这个阶段可能会调用componentDidMount | componentDidUpdate
,剩余的声明周期调用阶段都在render
阶段。commit
阶段很快,但是render
阶段很慢,Async Mode
(默认情况下尚未启用)将render
工作分解为多个碎片化时间,暂停、恢复工作,以避免阻塞浏览器。这意味着 React 可能在提交之前多次调用render
阶段的生命周期,也可能根本不提交就调用它们(由于错误或更高优先级的中断)。在render
阶段中,不能有side effect
,不然可能会出现意想不到的问题。