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