React本地开发时,组件为啥会渲染两次
2024-01-08 00:50:21
原因是因为使用了StrictMode ,
StrictMode 是一个用来突出显示应用程序中潜在问题的工具。与 Fragment 一样,StrictMode 不会渲染任何可见的 UI。它为其后代元素触发额外的检查和警告。
StrictMode 目前有助于:
- 识别不安全的生命周期 {#identifying-unsafe-lifecycles}
- 关于使用过时字符串 ref API 的警告 {#warning-about-legacy-string-ref-api-usage}
- 关于使用废弃的 findDOMNode 方法的警告
{#warning-about-deprecated-finddomnode-usage} - 检测意外的副作用 {#detecting-unexpected-side-effects}
- 检测过时的 context API {#detecting-legacy-context-api}
- 确保可复用的 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();
文章来源:https://blog.csdn.net/qq_42931285/article/details/135436418
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!