首页 > 文章列表 > React组件接收相同props时,是否真的会跳过渲染?

React组件接收相同props时,是否真的会跳过渲染?

109 2024-12-08

React组件接收相同props时,是否真的会跳过渲染?

react组件接收相同props时渲染行为分析

在react中,组件接收相同的props时,是否会跳过渲染一直是个备受关注的问题。让我们深入探究一下真实的机制。

实际测试结果

根据你提供的代码示例,shippingform组件接收了相同的props,但实际测试表明,渲染没有被跳过。

react渲染机制详解

react本身不会判断组件接收的参数是否相同。负责此任务的是react.memo函数。

react.memo是一个高阶组件,它包装被传入的组件。当组件被包装后,react.memo会比较新旧props。如果props相同,react.memo将阻止组件重新渲染。

代码示例

为了实现props相同时的渲染跳过,你需要将你的shippingform组件用react.memo包装如下:

import React, { memo } from "react";

const ShippingForm = memo((props) => {
  // 你的组件逻辑
});

通过将shippingform包裹在react.memo中,当组件接收相同props时,渲染将被跳过。

来源:1732053798