React StrictMode 是一个用于检测潜在问题的工具,它会在开发模式下对组件进行额外的检查,并在控制台显示警告信息。
React StrictMode 会对组件进行两次渲染,一次是为了检测潜在问题,另一次是为了实际渲染组件。这意味着在使用 React StrictMode 时,组件的 constructor 方法会被调用两次。
第一次调用 constructor 是在检测阶段,React StrictMode 会创建一个组件的假实例(也就是虚拟实例),这个假实例用来检查是否存在不安全的生命周期方法、使用已弃用的 API 等问题。
第二次调用 constructor 是在实际渲染阶段,React StrictMode 会创建一个真实的组件实例并渲染到页面上。
因此,如果你在组件的 constructor 方法中执行了一些副作用操作或者有一些需要特殊处理的逻辑,那么这些逻辑可能会被执行两次。所以在使用 React StrictMode 时,建议将副作用操作和特殊处理的逻辑移至 componentDidMount 生命周期方法中,以避免重复执行。