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时,渲染将被跳过。