React中的生命周期函数详细解读
文章目录
什么是生命周期函数
生命周期函数是指某一个时刻组件会自动执行的函数
比如render()就是一个生命周期函数,在state,和prop数据发生改变时。组件就会自动调用这个函数
react生命周期图的解析
react组件从创建到销毁要经历下面几个过程
initialization,初始化过程
初始化,这部在组件的构造函数中初始化好数据了,其实构造函数可以看成生命周期函数,但它不是react所有的
Mounting:挂载过程
这个过程有如下三个生命周期函数
componentWillMount()
当组件即将被挂载到页面的时刻被执行,此时页面还没被挂载,一般只会在组件第一次挂载时被执行一次
render()
在组件被渲染的过程中被执行,可以多次执行,注意除了render函数,所有的生命周期函数都可以不存在,但是自己必须自定义render函数
componentDidMount()
在组件被挂载到页面之后被执行,一般只会在组件第一次挂载时被执行一次
一般用于发送和接收网络请求的代码,如果把ajax卸载render函数里面,因为render函数会被执行许多次,所以会请求多次,性能会极大被消耗,写在componentWillMount到后面遇到更多的技术是会有问题,所以最好写在这个函数里面,没一点问题
Updation:更新数据的过程
这个过程有如下这些生命周期函数
无论是props还是state发生变化都会执行的函数如下
shoudComponentUpdate()
组件在被更新之前会执行此函数,要求你返回一个布尔值,原因是顾明思议(你的组件需要更改吗),如果是返回false,那么组件是不会被更新的(可以用于子组件可以节约性能)
componentWiiUpdate()
这个是上一个生命周期函数返回true之后执行的函数,在组件即将被更新之前被执行
render()
渲染过程中执行,可以多次执行
componentDidUpdate()
组件更新完成之后被执行
componentWillReceiveProps()
这个是有props参数的子组件,在父组件render函数被重新执行了,才会执行的生命周期函数,如果是父组件第一次被显示,都是不会被执行的。在 shoudComponentUpdate()之前执行
Unmount过程
componentWillUnmount()
组件被释放被结束被从页面中剔除的时候执行此函数