当前位置:   article > 正文

React中的生命周期函数详细解读_父组件render函数执行,子组件的render函数也执行吗

父组件render函数执行,子组件的render函数也执行吗

什么是生命周期函数

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

react生命周期图的解析

react组件从创建到销毁要经历下面几个过程
在这里插入图片描述

initialization,初始化过程

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

Mounting:挂载过程

在这里插入图片描述
这个过程有如下三个生命周期函数

componentWillMount()

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

render()

执行情况:

  1. 无论是props还是state发生变化都会执行的函数
  2. 当一个组件的父组件的render函数被执行的时候,父组件里面的子组件的render函数也会被重新执行
    在组件被渲染的过程中被执行,可以多次执行,注意除了render函数,所有的生命周期函数都可以不存在,但是自己必须自定义render函数
componentDidMount()

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

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

Updation:更新数据的过程

这个过程有如下这些生命周期函数
在这里插入图片描述

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

shoudComponentUpdate()

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

在react的逻辑里面,只要父组件有更新,则子组件无条件更新
判断组件更新前后的文本,看是否真的需要重新渲染,减少重复渲染
在这里插入图片描述

但是scu只有需要的时候才用

SCU一定要配合setState不可变值,才会有效

componentWiiUpdate()

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

render()

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

componentDidUpdate()

组件更新完成之后被执行

componentWillReceiveProps()

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

  • 如果这个组件第一次存在与父组件中,不会被执行
  • 如果这个组件已经存在与父组件中,才会被执行

Unmount过程

componentWillUnmount()

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/857475
推荐阅读
相关标签
  

闽ICP备14008679号