一、概念

shouldComponentUpdate简称SCU,是React中性能优化的重要一环。

shouldComponentUpdate(nextProps, nextState) {// 判断是否需要被渲染,如果需要则返回true,否则返回false if (nextProps.b === this.props.b) {return false;} else {return true;}
}

二、适用场景

react同一父组件的所有子组件中有一个更新,剩下的所有子组件都会重新渲染,但是为了性能,我们不需要让未更新依赖的组件更新。SCU就是解决这个未更新依赖的组件的重新渲染问题。

代码演示:

运行结果:

可以看到虽然只有组件一有数据更新,但所有组件都被重新渲染加载了。这时候就需要用到SCU了。

三、使用方法

3.1  基本使用方法 之一

为了方便演示我先将三四号子组件注释掉了。

注意这个方法是浅比较的scu。

代码演示:

运行结果:

可以看到,只有更新的组件进行了重新加载。未更新的组件并没有受到影响。

3.2  PureComponent方法

类组件 extends pureComponent的时候  当前组件也是浅比较的scu

代码展示:

运行结果:

可以看到,第三组件只有在首屏时加载一次,而后再没有加载,说明方法成功

3.3   React.memo高阶组件

React.memo 这个高阶函数 可以叫高阶组件

React.memo 这个高阶组件做scu 也是浅比较的scu

代码展示:

运行结果:

3.4  lodash.isEqual方法

多层的对象要进行比较,使用lodash 提供的递归深度比较。

(1)安装第三方依赖包   cnpm i -S lodash

(2)使用 lodash.isEqual

代码展示:

运行结果:

React之SCU(性能优化篇)相关推荐

  1. 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

    2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六)  中, 介绍了 ...

  2. 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  3. C语言嵌入式系统编程修炼之道——性能优化篇

    C语言嵌入式系统编程修炼之道--性能优化篇 作者:宋宝华  e-mail:[email]21cnbao@21cn.com[/email] 1.使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法.对于嵌 ...

  4. 在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。

    在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好. SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里 ...

  5. 秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  6. Android进阶:性能优化篇 Android进阶:性能优化篇

    Android进阶:性能优化篇 分类:Android 性能优化2011-08-09 17:06585人阅读评论(0)收藏举报 一.在使用Gallery控件时,如果载入的图片过多,过大,就很容易出现Ou ...

  7. React有哪些性能优化的手段?

    React有哪些性能优化的手段? 1.使用纯组件: 2.使用 React.memo 进行组件记忆(React.memo 是一个高阶组件),对 于相同的输入,不重复执行: 3.如果是类组件,使用 sho ...

  8. 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及超级分库分散并发方案(十六)...

    上节回顾: 上节 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五) 中, 介绍了 秋色园QBlog 在性能优化方面,从技术的优化手段,开始步入数据库设计优化,并从数据的 ...

  9. 我在大厂写React学到了什么?性能优化篇

    前言 我工作中的技术栈主要是 React + TypeScript,这篇文章我想总结一下如何在项目中运用 React 的一些技巧去进行性能优化,或者更好的代码组织. 性能优化的重要性不用多说,谷歌发布 ...

最新文章

  1. C# 根据中文得到全拼
  2. C语言字符串分离数字和字母,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  3. python怎样安装模块_python中如何安装模块
  4. wpf 将Style应用到 ListView 中的 ListViewItem 元素
  5. python Web抓取(一)[没写完]
  6. DeepMind科学家:强化学习足以满足通用AI需求
  7. 注意力机制可解释吗?这篇ACL 2019论文说……
  8. macos删除快捷键的各种区别用法
  9. SpringCloud Greenwich版本集成OAuth2.0
  10. bp神经网络模型拓扑结构,bp神经网络模型结构图
  11. GIS与虚拟仿真下直观、完整、立体地园区实景展示
  12. 展望下未来的计算机400字,展望未来作文400字(精选8篇)
  13. egret 实战教程之跳一跳(一)
  14. 浅析支付宝钱包支付流程
  15. 服务器串口硬盘梅捷主板设置,梅捷主板bios设置ahci
  16. python将某个非格式化显示的json文件处理得到格式化显示
  17. 方差sigma^2与标准差sigma的关系
  18. hdf5 mysql_PythonHDF5目录
  19. EXCEL解密打开密码
  20. 看上去很美-中国的电子杂志

热门文章

  1. 用CorelDRAW软件把位图转成矢量图
  2. 【CELL 心脏时空图】A spatiotemporal organ-wide gene expression and cell atlas of the developing human heart
  3. 有个问题,win10系统,网络诊断,将来会自动连接到jinling,什么意思?
  4. aspx repeater 用法_Repeater控件的详细用法
  5. Python集合(附练习题)
  6. 计算机应用4班班委决定,大学毕业游策划书
  7. 华为matepad切换电脑模式_华为matepadpro可不可以当电脑(华为matepadpro可以当电脑吗)...
  8. MySQL:关于排序order by limit值不稳定的说明(1)
  9. 【程序源代码】CRM客户关系管理系统
  10. P200阿木无人机学习笔记--二维码引导着陆