react lazy, suspense, memo

本文深入探讨React中lazy和memo的功能与应用。lazy实现组件的懒加载,通过代码分割提高加载效率,配合Suspense组件在加载过程中显示加载提示。memo用于函数式组件的性能优化,避免不必要的重新渲染。

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

react lazy其实就是懒加载,比如你的父组件中加载了一个子组件,你没有使用react.lazy的话,他会直接去加载父组件和子组件中的代码(父+子.js),如果你使用了react.lazy在你加载父组件的时候(父.js),子组件将不会代码一起加载进去,而是当你需要渲染子组件的时候他的代码才会去加载(子.js),其实就是一个代码分割的作用

然后suspense其实也是搭配react.lazy一起使用的,fallback属性接受任何在组件加载过程中你想展示的 React 元素

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <OtherComponent />
      </Suspense>
    </div>
  );
}

suspense可以在你加载子组件代码时来一个显示,就是fallback里面的内容 

参考 https://www.jianshu.com/p/61d6920c9e8f

react.memo

其实就是针对函数式组件的性能优化

const memo = (props)  => React.memo(Mycomponent, (prevProps, nextProps) => 
  prevProps.name === nextProps.name
)

第一个参数Mycomponent是函数式组件,第二个参数是判断Mycomponent是否根据当前传入的props有没有改变的回调函数,返回true则props没有发生改变,所以不用rerender

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值