react详细介绍性能优化

本文详细探讨了React性能优化的几个关键点,包括理解浏览器的重绘和重排,利用shouldComponentUpdate避免不必要的更新,优化组件传参,使用PureComponent和React.memo,合理设置Key值,以及引入react-loadable实现按需加载。此外,还提到了Redux性能优化的解决方案——使用reselect库进行数据缓存。
摘要由CSDN通过智能技术生成

首先要了解网页性能不好的罪魁祸首

浏览器的重绘和重排版(reflows&repaints)(DOM操作都会引起)才是导致网页性能问题的关键。

而React虚拟DOM的目的就是为了减少浏览器的重绘和重排版。
  一:react中的问题

有时候组件的render方法会在不必要的情况下被调用。

比如:

组件渲染的过程中,并没有使用props或者state的值,或者组件的props或者state并没有在父组件重新绘染时发生改变。这意味着重新绘染这个组件会得到和已知虚拟DOM一模一样的结果。二:优化关键shouldComponentUpdate

【shouldComponentUpdate的作用与使用pureComponent和React.memo作用一致】

组件更新生命周期中必调用shouldComponentUpdate,字面意思是组件是否应该更新。shouldComponentUpdate默认返回true,必定更新。所有当我们判断出组件没必要更新时,shouldComponentUpdate可以返回false,就达到优化效果。

shouldComponentUpdate生命周期有俩个参数,一个是nextProps,另一个是nextState,而我们就用这俩个上一次的props和state与这一次的props和state去做比较,如果俩者相同,那么就return false,不让它进行更新就可以了。

注意点:

shouldComponentUpdate()生命周期正常情况下只会进行浅比较。如果要进行深比较请继续往下看。

深比较和浅比较涉及到堆内存和栈内存的知识点,可以观看笔者的另外一篇博客去深入了解。

示例代码如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值