开发者学堂课程【React 入门与实战:快速梳理 React 的组件生命周期函数图】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/585/detail/8122
快速梳理 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)属性。