组件优化

Component的2个问题

  1. 只要执行setState(),即使不改变状态数据, 组件也会重新render() ==> 效率低

  2. 只当前组件重新render(), 就会自动重新render子组件,纵使子组件没有用到父组件的任何数据 ==> 效率低

效率高的做法

只有当组件的state或props数据发生改变时才重新render()

原因

Component中的shouldComponentUpdate()总是返回true

解决

办法1: 重写shouldComponentUpdate()方法比较新旧state或props数据, 如果有变化才返回true, 如果没有返回false
办法2:  使用PureComponentPureComponent重写了shouldComponentUpdate(), 只有state或props数据有变化才返回true注意: 只是进行state和props数据的浅比较, 如果只是数据对象内部数据变了, 返回false  不要直接修改state数据, 而是要产生新数据
项目中一般使用PureComponent来优化

reactjs组件优化:setState的反复render问题相关推荐

  1. PureComponent: setState未触发render渲染

    之前一般都是使用Component的比较多,所以对PureComponent了解比较少.最近在使用PureComponent的时候遇到一些问题,就是setState未触发render渲染的问题: 两者 ...

  2. 从 0 到 1 实现 React 系列 —— 4.优化setState和ref的实现

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...

  3. reactjs组件的生命周期

    1_引出生命周期 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...

  4. reactjs组件的三大属性之props基本使用及props属性值检验

    reactjs组件的三大属性之props基本使用及props属性值检验

  5. reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照

    reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照

  6. reactjs组件的生命周期函数:getDerivedStateFromProps

    reactjs组件的生命周期函数:getDerivedStateFromProps

  7. reactjs组件生命周期:componentWillReceiveProps及新旧版本生命周期钩子函数对比

    reactjs组件生命周期:componentWillReceiveProps及新旧版本生命周期钩子函数对比

  8. 响应式滚动图懒加载 element ui el-carousel 组件优化代码

    响应式滚动图懒加载 element ui  el-carousel 组件优化代码 懒加载插件vue-lazyload //main.js import VueLazyload from 'vue-la ...

  9. vant 日历组件优化

    vant日历组件优化 vant组件现状 min-date 如果不设置默认当前日期 max-date 如果不设置当前日期的六个月后 目的:这个组件这么设置的目的就是为了节省性能 公司需求 min-dat ...

最新文章

  1. PN结中存在的Boltzmann常数
  2. Ubuntu 用vsftpd 配置FTP服务器
  3. 【深度学习】keras框架使用预训练模型进行Finetune的应用
  4. 【直播回放】80分钟剖析GAN如何从各个方向提升图像的质量
  5. ROS学习笔记(一)
  6. 【远程操控】Pycharm远程连接服务器之本地显示独立的plot窗口
  7. CSS属性总结之background
  8. 工作196:注意接收数据的格式
  9. 论文浅尝 | 基于局内去噪和迁移学习的关系抽取
  10. smith标准型_线性系统理论(八)多项式矩阵Smith-McMillan标准型计算方法
  11. 俩台电脑怎么设置同一局域网_方法 | 把手机上的照片传到电脑上
  12. C语言如何求最大值和最小值
  13. Assignment | 05-week3 -Part_1-Neural Machine Translation
  14. 为什么字节跳动的年薪50万的软件测试工程师遍地都是?
  15. Given a binary search tree with its preorder traversal sequence { 8, 2, 15, 10, 12, 21 }.…
  16. NRF52832学习笔记(23)——GAP主机端连接
  17. Failed to introspect Class [com.controller.HardWareController] from ClassLoa在ssm中读取串口信息
  18. 牛客网 KY11 二叉树遍历
  19. 安装VS2010sp1显示兼容性问题
  20. 开源IM可以开发哪些产品和功能

热门文章

  1. c语言is stack empty,C语言实现栈的问题
  2. 香帅的北大金融学课笔记6 -- 货币基金
  3. tensorflow随笔 -QueueRunner
  4. 可能是全网写特征工程最通透的...
  5. 【深度学习】人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
  6. 【机器学习】机器学习的学习经验总结!
  7. 春节礼品:iPhone 11 抱回家
  8. 【Python基础】为什么更改列表'y'也会更改列表'x'?
  9. 【深度学习】Github上标星1.1W的PyTorch教程,我们给您搬来了
  10. 优化 | 利用SciPy求解非线性规划问题