如何避免父组件重新渲染,子组件也跟着渲染

当父组件重新渲染时,通常情况下,子组件也会跟着重新渲染。但是,有一些方法可以避免这种情况发生,让子组件在父组件重新渲染时不进行渲染。以下是五种常见的方法:

  1. 使用 React.memo 或 PureComponent
    • 使用 React.memo(函数组件)或 PureComponent(类组件)来包裹子组件。这些高阶组件会对组件的 props 进行浅比较,如果 props 没有变化,就不会触发重新渲染。
const MemoizedComponent = React.memo(MyComponent);
// or
class MyComponent extends React.PureComponent {
  // Component definition
}
  1. 将子组件的 props 抽离到父组件外部
    • 将会导致子组件重新渲染的 props 放到父组件外部,以确保在父组件重新渲染时,子组件不会收到变化的 props。
const parentProps = { ... };
function ParentComponent() {
  return <ChildComponent {...parentProps} />;
}
  1. 使用 useCallback
    • 使用 useCallback 将回调函数进行记忆化,以确保在父组件重新渲染时,回调函数不会改变引用,从而避免触发子组件的重新渲染。
const memoizedCallback = useCallback(() => {
  // Callback implementation
}, [dependency]);
  1. 使用 useMemo
    • 使用 useMemo 缓存子组件的计算结果,以确保在父组件重新渲染时,不会重新计算这些结果。
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
  1. 使用 React Context
    • 使用 React Context 将父组件的状态提升到共享的上下文中,以确保在父组件重新渲染时,子组件不会重新渲染,除非它们依赖于上下文中的变化。

这些方法可以根据实际情况和需求来选择和组合使用,以达到在父组件重新渲染时不触发子组件重新渲染的目的。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值