React的性能调优 - 通过memo避免组件重载

前言

最近开始学习React,跟着Kent学,有很多干货,这里分享memo的使用方法


一、背景

1.1 React lifecycle

React的lifecycle如下

→  render → reconciliation → commit
         ↖                   ↙
              state change

其中

  • "render" phase: 调用React.createElement创建React element
  • "reconciliation" phase: 对比之前以及新的element
  • "commit" phase: 如果需要的话跟新DOM

DOM的更新是很慢的,React就是通过控制必要的DOM跟新来提高速度的

那么,一个React组件的跟新取决于以下几个原因

  1. 组件的props改变
  2. 组件的内部state改变
  3. 组件中读取context内容的改变
  4. 父组件re-render

但是,React组件的跟新并不意味着这个组件有必要跟新,memo的出现就是告诉React在那些条件下组件是需要跟新的


二、example

2.1 用法

用法其实很简单,就是把组件通过memo包裹起来就好了,使用如下

Component = React.memo(Component)

但是简单的包裹其实是不能确保是真正提高了性能的,这时候需要借助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值