一、React组件何时发生渲染——何时会生成React元素?
React组件的渲染发生在两个阶段。
1. 组件挂载。
2. 组件更新。
二、React组件更新的触发条件是什么?
没有实现shouldComponentUpdate方法的继承自Component的class组件来说:①父组件更新或者②该组件调用setState方法后,该组件会更新。
function组件来说:①父组件更新之后,该组件会更新。
 
当使用继承自PureComponent的class组件使用memo来包装的function组件时,
组件更新与否的判断条件是——比较前后两次props和state的属性值是否严格相等?若是严格相等,则组件不会重新渲染。若不是严格相等,则会重新渲染,生成新的React元素。
 
编写了shouldComponent的class组件或使用传入areEqual函数的memo函数所包装的function组件上的更新触发条件是什么样的呢?
shouldComponentUpdate(props, state) 返回true则重新渲染组件。(在该函数中,你可以得到props和state变化前后的值。)
areEqual(prevProps, nextProps) 返回false则重新渲染组件。(在该函数中,你可得到props变化前后的值。)
 
另外,使用hook之后的function组件的更新情况需要额外注意。当hook生成的state发生改变时,function组件是否更新的条件是——前后两次的state是否严格相等。
若严格相等,则不重新渲染组件,若不严格相等,则重新渲染组件。
 
参考资料:
 

最新文章

  1. PHP实现查询Memcache内存中的所有键与值
  2. BZOJ1264——[AHOI2006]基因匹配Match
  3. Android系统启动分析(Init->Zygote->SystemServer->Home activity)
  4. bash shell命令(2)
  5. [Mac]Mac OS 10.11虚拟机搭建ReactNative遇坑记录
  6. 【风马一族_Python】 实施kNN算法
  7. python(三)一个文件读写操作的小程序
  8. Quartz-2D绘图之概览
  9. c++11: trailing return type in functions(函数返回类型后置)
  10. javascript 的对象
  11. 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
  12. jquery控制audio的播放与暂停
  13. Python笔记·第六章——集合 (set) 的增删改查及 copy()方法
  14. C# 命名空间和程序集
  15. 解决IE下a标签点击有虚线边框的问题
  16. CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport
  17. 使用 AcceptTcpClientAsync 进行 异步 操作
  18. python中可变参数和关键字参数总结
  19. 019_nginx upstream中keepalive参数
  20. HttpClient 通信工具类

热门文章

  1. Go实现栈与队列基本操作
  2. 设计模式学习(二十四):Spring 中使用到的设计模式
  3. 关于phalcon框架中DI的理解
  4. C温故补缺(十):输入输出
  5. kubernetes数据持久化StorageClass动态供给(二)
  6. 移除元素-LeetCode27 双指针
  7. 【离线数仓】Day03-系统业务数据仓库:数仓表概念、搭建、数据导入、数据可视化、Azkaban全调度、拉链表的使用
  8. requests模块和openpyxl模块
  9. 图解B树及C#实现(2)数据的读取及遍历
  10. 关于jQuery的操作