快速梳理React的组件生命周期函数图
内容介绍:
一、生命周期的概念
二、React组件的生命周期
一、生命周期的概念
每个组件的实例从创建、到运行、直到销毁,这三个阶段就叫生命周期;在这个过程中,会触发一系列事件,这些事件就叫做组件的生命周期函数。
二、React组件的生命周期
React组件的生命周期可以分为三个部分:
1. 组件创建阶段:
特点:一辈子只执行一次
componentDidMount(组件将要挂载):此时页面上是空的。
Render(正在渲染):创建到内存中。
componentDidMount:组件挂载完成。
2. 组件运行阶段:
按需,根据props属性或state状态的改变,有选择的执行0到多次。
触犯以下组件的条件:属性props改变或者状态(state)改变。
componentWillReceiveProps:组件将要接受新的props属性,属性props改变就会执行componentWillReceiveProps组件。
shouldComponentUpdate(组件是否需要被更新):如果是否,就会执行false,回到运行中。
render:根据最新的状态重新渲染元素,rander执行完页面还是旧的,只有执行了componentDidupdate页面才会更新。
componentDidupdate:执行了rander,组件就完成了更新。
(2) 组件销毁阶段:一辈子只执行一次。
CompontWillUnmount:将要被卸载。
3. 生命周期函数图:
(1)创建阶段:
Static default preps={}:在初始化preps,可以设置默认值。
This state+{}:这是在创建阶段执行的第一个函数,This state在创建组件。
ComponentwillMount:此时页面上是空的,组件将要挂载。
Render:Render执行的时候内存创建了一个区域,Render执行完之后不会挂载到页面上。当执行完componentDidMount就挂载到页面上了。
componentDidMount:完成了挂载,此时页面上已经可以看到组件的数据。
当执行完componentDidMount的时候,就脱离了创建阶段,开始执行运行阶段。
(2)运行阶段:
出发属性的前提是属性(prps)改变。如果一个组件放到页面上了,它的属性跟状态从来没有发生改变,也不会触犯函数。
shouldComponentUpdate:组件是否需要被更新。在shouldComponentUpdate函数里面触发了false,数据就是最新的。因为状态改变了才触发false,页面此时是旧的;如果在shouldComponentUpdate阶段里面触发了true,那他就会继续渲染render.
ComponentwillUpdate:组件将要更新。用最新的状态去更新组件,此时还没有更新,因为是旧的,但是数据还是最新的。
Render:根据最新的状态重新渲染元素。当Render执行完,页面还是旧的,当执行到ComponentDidUpdate,页面就会更新。
componentWillReceiveProps:当属性改变,就会触发一个生命周期函数,这个函数就叫做componentWillReceiveProps
卸载:当把页面关了,就会触发卸载(unmount)属性。