如果你希望在'p2'变化时重新渲染组件,但是'p1'不变化时不重新渲染组件,你可以使用'React.memo'来包装你的组件,并且指定一个自定义的比较函数来比较'p2'的变化。

以下是一个示例代码:

import React from 'react';

const Page = React.memo(({ p1, p2 }) => {
  // 这里是组件的渲染逻辑
  return (
    <div>
      <h1>p1: {p1}</h1>
      <h1>p2: {p2}</h1>
    </div>
  );
}, (prevProps, nextProps) => {
  // 自定义比较函数,只有 p2 变化时才重新渲染组件
  return prevProps.p2 === nextProps.p2;
});

export default Page;

在上面的代码中,我们使用了'React.memo'来包装'Page'组件,并且传入了一个自定义的比较函数。比较函数接收两个参数,'prevProps'表示之前的属性,'nextProps'表示新的属性。在比较函数中,我们只关心'p2'的变化,如果'p2'相等,则返回'true',表示'props'没有变化,不需要重新渲染组件。

这样,当'p1'不变而'p2'变化时,'Page'组件就不会重新渲染,只有当'p2'变化时,'Page'组件才会重新渲染。

React.js v18 路由 v6 中使用 React.memo 优化组件渲染:仅在 p2 变化时重新渲染

原文地址: https://www.cveoy.top/t/topic/qh6V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录