【React】解决react执行两遍的问题

本文探讨了React组件在开发模式下可能因<React.StrictMode>标签导致的额外渲染。严格模式用于揭示潜在问题,它会重复调用生命周期方法以帮助开发者检测副作用。为避免组件不必要的双次渲染,只需在index.tsx中移除<React.StrictMode>标签。此问题只在开发模式出现,不影响生产环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

react组件渲染两次

可能会有人问,问什么我的组件明明是就让渲染一次,但是实际上却渲染两次呢?其实我也遇到了这个问题,那么下面我提出一种解决这个问题的一种方法。

在react渲染组件中  , 初始化的index.tsx文件里,存在一个<React.StrictMode>标签,

这个是react的一个用来突出显示应用程序中潜在问题的工具(严格模式)

有一项检测意外的副作用,严格模式不能自动检测到你的副作用,但它可以帮助你发现它们,使它们更具确定性。通过故意重复调用以下函数来实现的该操作。

注意:这仅适用于开发模式。生产模式下生命周期不会被调用两次。

所以只需要把这个标签去掉就可以了
 

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

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

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值