React本地开发时,组件为啥会渲染两次

原因是因为使用了StrictMode ,

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

StrictMode 目前有助于:

  1. 识别不安全的生命周期 {#identifying-unsafe-lifecycles}
  2. 关于使用过时字符串 ref API 的警告 {#warning-about-legacy-string-ref-api-usage}
  3. 关于使用废弃的 findDOMNode 方法的警告
    {#warning-about-deprecated-finddomnode-usage}
  4. 检测意外的副作用 {#detecting-unexpected-side-effects}
  5. 检测过时的 context API {#detecting-legacy-context-api}
  6. 确保可复用的 state {#ensuring-reusable-state}

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

知道了原因之后,问题就很好解决了,我们只需要将StrictMode注释掉即可,如下所示。(一般是在index.js文件中使用)

import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import {
    BrowserRouter } from "react-router-dom";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
  <BrowserRouter>
    {
   /* <React.StrictMode> */}
      <App />
    {
   /* </React.StrictMode> */}
  </BrowserRouter>
);
reportWebVitals();


最近更新

  1. TCP协议是安全的吗?

    2024-01-08 10:08:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 10:08:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 10:08:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 10:08:01       20 阅读

热门阅读

  1. go 切片长度与容量的区别

    2024-01-08 10:08:01       32 阅读
  2. 【前端规范】

    2024-01-08 10:08:01       35 阅读
  3. docker运行状态

    2024-01-08 10:08:01       29 阅读
  4. C++基础拾遗--看的不多只看一篇

    2024-01-08 10:08:01       35 阅读
  5. 【C语言】R7-5 奇偶排序

    2024-01-08 10:08:01       36 阅读
  6. Windows安装SonarQube9.9

    2024-01-08 10:08:01       39 阅读
  7. 剑指offer面试题3 二维数组中的查找

    2024-01-08 10:08:01       32 阅读
  8. 383. 赎金信

    2024-01-08 10:08:01       43 阅读
  9. 信息学奥赛一本通1037:计算2的幂

    2024-01-08 10:08:01       37 阅读
  10. 【Docker】 Docker 开发注意事项

    2024-01-08 10:08:01       37 阅读
  11. springMvc向request作用域存储数据的4种方式

    2024-01-08 10:08:01       34 阅读
  12. C&C++语言控制语句介绍

    2024-01-08 10:08:01       37 阅读