React

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > React > React组件渲染两次

解决React初始化加载组件会渲染两次的问题

作者:CoderLiu

这篇文章主要介绍了解决React初始化加载组件会渲染两次的问题,文中有出现这种现象的原因及解决方法,感兴趣的同学跟着小编一起来看看吧

React组件在初始加载时渲染两次:

import React from 'react'
export default function App() {
  console.log('被加载')
  return <div>App</div>
}

如上在控制台我们会看到输出了两次'被加载'

出现这种现象的原因是:

由于是使用脚手架创建项目,默认会开启严格模式,在严格模式下,React 的开发环境会刻意执行两次渲染,用于突出显示潜在问题。

如果不想出现这个问题,可以将入口文件中的严格模式去除:

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App></App>
  </React.StrictMode>,
);

ReactDOM.createRoot(document.getElementById('root')).render(<App />)

关于严格模式

StrictMode 是一个用来突出显示应用程序中潜在问题的工具。与 Fragment 一样,StrictMode 不会渲染任何可见的 UI。它为其后代元素触发额外的检查和警告。

严格模式检查仅在开发模式下运行;它们不会影响生产构建。

你可以将整个应用程序或者部分组件包裹在 <React.StrictMode> 标签中,来启用严格模式。

import React from 'react';
const App = () => {
  return (
    <React.StrictMode>
      {/* 你的应用程序组件 */}
    </React.StrictMode>
  );
};
export default App;

严格模式会执行以下检查和优化:

React 的严格模式从 React 16.3 版本开始引入,并且在后续版本中得到了改进和完善。具体来说:

到此这篇关于解决React初始化加载组件会渲染两次的问题的文章就介绍到这了,更多相关React加载组件渲染两次内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文