工具:
  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;
 

最新文章

  1. linux单网卡多IP配置
  2. 第三章 springboot + jedisCluster(转载)
  3. Uva11374 Airport Express
  4. python爬虫——爬取NUS-WIDE数据库图片
  5. 25Spring_事务管理的两种机制
  6. 【socket.io研究】3.手机网页间聊天核心问题
  7. This application failed to start because it could not find or load the Qt platform plugin "windows"
  8. hdu1166 树状数组
  9. php排序算法之选择排序
  10. Java笔记:枚举类
  11. 比较全的JavaScript倒计时脚本
  12. MySQL高可用工具--orchestrator
  13. Tarjan求无向图割点、桥详解
  14. 如何在自己设计的页面中调用metamask-2
  15. 过滤器Filter的使用(以登录为例子)
  16. kali 解决Metasploit拿到shell后显示中文乱码问题
  17. One-wire Demo on the STM32F4 Discovery Board
  18. 【Leetcode】82. Remove Duplicates from Sorted List II
  19. Hadoop部署方式-完全分布式(Fully-Distributed Mode)
  20. 语音转文字小工具开发Python

热门文章

  1. MySQL 查询当天、本周,本月、上一个月的数据
  2. ABP框架踩过的坑系列6
  3. Java基础之抽象类和接口
  4. haproxy mycat mysql 读写分离MHA高可用
  5. python3.x 基础三:装饰器
  6. .net System.Web.Mail发送邮件 (设置发件人 只显示用户名)
  7. npm audit fix 报错
  8. 常用的body和通用css设置
  9. overflow:hidden的清除浮动效果
  10. Tortoise svn 基础知识