React中的生命周期函数详细解读

什么是生命周期函数

生命周期函数是指某一个时刻组件会自动执行的函数
比如render()就是一个生命周期函数,在state,和prop数据发生改变时。组件就会自动调用这个函数

react生命周期图的解析

react组件从创建到销毁要经历下面几个过程
React中的生命周期函数详细解读

initialization,初始化过程

初始化,这部在组件的构造函数中初始化好数据了,其实构造函数可以看成生命周期函数,但它不是react所有的

Mounting:挂载过程

React中的生命周期函数详细解读
这个过程有如下三个生命周期函数

componentWillMount()

当组件即将被挂载到页面的时刻被执行,此时页面还没被挂载,一般只会在组件第一次挂载时被执行一次

render()

在组件被渲染的过程中被执行,可以多次执行,注意除了render函数,所有的生命周期函数都可以不存在,但是自己必须自定义render函数

componentDidMount()

在组件被挂载到页面之后被执行,一般只会在组件第一次挂载时被执行一次

一般用于发送和接收网络请求的代码,如果把ajax卸载render函数里面,因为render函数会被执行许多次,所以会请求多次,性能会极大被消耗,写在componentWillMount到后面遇到更多的技术是会有问题,所以最好写在这个函数里面,没一点问题

Updation:更新数据的过程

这个过程有如下这些生命周期函数
React中的生命周期函数详细解读

无论是props还是state发生变化都会执行的函数如下

shoudComponentUpdate()

组件在被更新之前会执行此函数,要求你返回一个布尔值,原因是顾明思议(你的组件需要更改吗),如果是返回false,那么组件是不会被更新的(可以用于子组件可以节约性能)

componentWiiUpdate()

这个是上一个生命周期函数返回true之后执行的函数,在组件即将被更新之前被执行

render()

渲染过程中执行,可以多次执行

componentDidUpdate()

组件更新完成之后被执行

componentWillReceiveProps()

这个是有props参数的子组件,在父组件render函数被重新执行了,才会执行的生命周期函数,如果是父组件第一次被显示,都是不会被执行的。在 shoudComponentUpdate()之前执行

Unmount过程

componentWillUnmount()

组件被释放被结束被从页面中剔除的时候执行此函数