# React组件生命周期
React组件的生命周期分为三大阶段
## 组件创建阶段:
组件创建阶段的生命周期函数,有一个显著的特点:创建阶段的生命周期函数,在组件的一辈子中,只执行一次;
> constructor 组件初始时自动调用
> componentWillMount: 组件将要被挂载,此时还没有开始渲染虚拟DOM render:第一次开始渲染真正的虚拟DOM,当render执行完,内存中就有了完整的虚拟DOM了
> render(){}渲染成虚拟dom,将来可以用来去和老的虚拟dom进行diff算法。 页面中没有效果
> componentDidMount: 组件完成了挂载,此时,组件已经显示到了页面上,当这个方法执行完,组件就进入都了 运行中 的状态
## 组件运行阶段
也有一个显著的特点,根据组件的state和props的改变,有选择性的触发0次或多次;
> componentWillReceiveProps: 组件将要接收新属性,此时,只要这个方法被触发,就证明父组件为当前子组件传递了新的属性值;可以接收新的props和state,但是并未更新
> shouldComponentUpdate: 组件是否需要被更新,此时,组件尚未被更新,可以接收新的props和state,但是并未更新
> componentWillUpdate: 组件将要被更新,此时,尚未开始更新,可以接收新的props和state,内存中的虚拟DOM树还是旧的
> render: 此时state 和 props,已经是最新的,被更新的同时 重新渲染一棵内存中的 虚拟DOM树,当 render 调用完毕,内存中的旧DOM树,已经被新DOM树替换了!此时页面还是旧的
> componentDidUpdate: 此时,页面又被重新渲染了,state 和 虚拟DOM 和 页面已经完全保持同步
## 组件销毁阶段:
也有一个显著的特点,一辈子只执行一次;
> componentWillUnmount: 组件将要被卸载,此时组件还可以正常使用;
也可以参照下图来进行理解(不用重点掌握后面通过案例我们来了解就可以了)
![](https://box.kancloud.cn/d4a76851cd08a44bb57f7037fe1c5810_1101x1141.png)
![](https://box.kancloud.cn/1c14d8a7a85b626eccf1994765579a5b_1611x909.png)
# 总结
在这章节课程中,我们需要知道解React的生命周期,分三阶段。初始,运行,销毁。
通过下一章节的案例来达到熟练应用即可。
- webpack复习
- React基础
- 前端三大主流框架对比
- React中几个核心的概念
- React基础语法
- React JSX语法
- React组件
- 普通组件
- 组件通信-父向子传递
- 组件拆成单个文件
- 面向对象复习
- Class组件基础
- Class组件的私有状态(私有数据)
- 案例:实现评论列表组件
- 组件样式管理
- 组件样式分离-样式表
- CSS模块化
- 生命周期
- React组件生命周期
- Counter组件来学习组件生命周期
- 生命周期总结
- 生命周期案例
- React评论列表
- React双向数据绑定
- React版todolist
- 其它提高(了解)
- 组件默认值和数据类型验证
- 绑定this并传参的三种方式
- 祖孙级和非父子组件传递数据(了解)
- React路由
- 路由基础
- 动态路由
- 路由严格模式
- 路由导航定位
- 路由重定向
- 路由懒加载
- WolfMovie项目
- 项目初始化
- AntDesign使用
- 其它相关了解