工具:
  1. React 16 或更新版本   只需在url 后边加  ?react_perf 后 performance 一栏中会添加 User Timing
  2. devtool 分析 state、props 、组件树、redux store 数据;
  3. profiler 工具能分析具体函数;
  4. Timeline 工具跟 User Timing 大同小异;
 
优化点: 
  1. 父组件更新默认触发所有子组件更新
  2. 列表类型的组件默认更新方式非常复杂
 
建议:
  1. 如果你有些组件是纯组件,那么把继承类从 Component 换成 PureComponent;
  2. 用immutable生成不可变数据;( seamless-immutable 简易版)
  3. 针对列表遍历类型,遍历时候增加唯一 key 属性值(不推荐用数组下表);
  4. 不是纯组件的话,子组件执行 shouldComponentUpdate 方法,自行决定是否更新 ;
  5. render 尽量少新建变量 和 bind 函数,在constructor() 中做;
  6. 函数中传参数量尽量少;
  7. 组件中 style 样式 定义变量引入;
  8. 不要将包裹节点的类型随意修改;
  9. 使用return null而不是CSS的display:none来控制节点的显示隐藏。保证同一时间页面的DOM节点尽可能的少;
  10. 组件层次结构颗粒化;
  11. 请尽量使用const element、 兜底值、对象、数组字面量放在组件外定义;
  12. {...this.props} (不要滥用,请只传递component需要的props,传得太多,或者层次传得太深);
  13. 使用无状态组件,没有生命周期,只是简单的接受 props 渲染生成 DOM 结构;
  14. reselect 对redux 请求的数据进行缓存,没变就从缓存中取;
  15. 去抖频繁触发的事件(如:scroll、resize),lodash 有 _.debounce ,也有debounce的npm包;
  16. setTimeout 和 setInterval 事件  有 react-timeout 包 npm;
 

react 性能优化注意事项的更多相关文章

  1. react性能优化

    前面的话 本文将详细介绍react性能优化 避免重复渲染 当一个组件的props或者state改变时,React通过比较新返回的元素和之前渲染的元素来决定是否有必要更新实际的DOM.当他们不相等时,R ...

  2. React性能优化记录(不定期更新)

    React性能优化记录(不定期更新) 1. 使用PureComponent代替Component 在新建组件的时候需要继承Component会用到以下代码 import React,{Componen ...

  3. 关于React性能优化

    这几天陆陆续续看了一些关于React性能优化的博客,大部分提到的都是React 15.3新加入的PureComponent ,通过使用这个类来减少React的重复渲染,从而提升页面的性能.使用过Rea ...

  4. React性能优化之PureComponent 和 memo使用分析

    前言 关于react性能优化,在react 16这个版本,官方推出fiber,在框架层面优化了react性能上面的问题.由于这个太过于庞大,我们今天围绕子自组件更新策略,从两个及其微小的方面来谈rea ...

  5. React 性能优化 All In One

    React 性能优化 All In One Use CSS Variables instead of React Context https://epicreact.dev/css-variables ...

  6. React性能优化总结

    本文主要对在React应用中可以采用的一些性能优化方式做一下总结整理 前言 目的 目前在工作中,大量的项目都是使用react来进行开展的,了解掌握下react的性能优化对项目的体验和可维护性都有很大的 ...

  7. React 性能优化总结

    初学者对React可能满怀期待,觉得React可能完爆其它一切框架,甚至不切实际地认为React可能连原生的渲染都能完爆--对框架的狂热确实会出现这样的不切实际的期待.让我们来看看React的官方是怎 ...

  8. react 性能优化

    React 最基本的优化方式是使用PureRenderMixin,安装工具 npm i react-addons-pure-render-mixin --save,然后在组件中引用并使用 import ...

  9. React性能优化总结(转)

    原文链接: https://segmentfault.com/a/1190000007811296?utm_source=tuicool&utm_medium=referral 初学者对Rea ...

随机推荐

  1. java ->IO流_commons类

    commons-IO 导入classpath 加入classpath的第三方jar包内的class文件才能在项目中使用 1.创建lib文件夹 2.将commons-io.jar拷贝到lib文件夹 3. ...

  2. .Net Core3.0 WebApi 项目框架搭建 五:仓储模式

    .Net Core3.0 WebApi 项目框架搭建:目录 理论介绍 仓储(Respository)是存在于工作单元和数据库之间单独分离出来的一层,是对数据访问的封装.其优点: 1)业务层不需要知道它 ...

  3. javascript----放大模式

    放大模式 1.介绍:放大模式降低模块之间直接的联系,降低耦合,当一个模块出现错误,不会影响另一个模块的功能

  4. React:Conditional Rendering(条件渲染)

    就像JS中常常会根据条件(比如if/else.switch)返回不同的值,React中也可以根据组件的状态或其他参考条件返回不同的React Element. 比如根据用户是否登陆渲染对应的UI面板. ...

  5. PostgreSQL 安装PYTHON扩展,访问页面或者第三方程序

    应用场景当数据库中relation表中有数据插入.更新.删除操作,postgresql 调用第三方接口,进行处理.这里用pgsq 中python的扩展插件来实现. 1.安装PostgreSQL中的Py ...

  6. Holy Grail Bellman-Ford/spfa

    Holy Grail Bellman-Ford #include <bits/stdc++.h> using namespace std; , maxm = ; const int inf ...

  7. 1.1Go环境搭建之Linux

    1.ssh远程登录Linux服务器,可选用iTerm.xshell ssh root@ip 2.建议配置好阿里云yum源.epel源 安装git yum install git 3.下载go源码包 / ...

  8. DPDK Mempool 库原理(学习笔记)

    1 前置知识点学习(了解) 从CPU到实际的存储节点,依据层级划分:Channel > DIMM > Rank > Chip > Bank > Row /Column 1 ...

  9. 自定义spring-boot-starter

    需求背景: Springboot是Spring旗下优秀的子项目之一,其核心理念之一:约定优于配置.通过自动化的配置极大的提升了我们的开发效率,目前已集成诸多组件的starter起步依赖,帮助我们更加快 ...

  10. Lowest Common Multiple Plus(hdu2028)

    思考: 乘法爆咋数据.把int换成unsigned就过了,同时%d换成%u.求最大公约数和最小公倍数. #include<stdio.h> int gcd(unsigned x, unsi ...