【React】react的生命周期调用顺序

react的生命周期

一、新生命周期

1、挂载阶段

1.1 constructor

(1)在React组件挂载之前被调用
(2) 初始化函数内部 state或者在this上挂载方法

1.2 getDerivedStateFromProps

(1)为静态方法,不能访问到组件实例this
(2)在创建或更新阶段调用或者在props、state和render方法前调用
(3)返回一个对象来更新 state, 如果返回 null 则不更新任何内容

1.3 render

(1)用于渲染DOM结构
(2)不要在 render 里面 setState, 否则会触发死循环导致内存崩溃

1.4 componentDidMount

(1) 挂载到真实DOM节点后执行,render方法之后执行
(2)是发送网络请求、启用事件监听方法的好时机

2、更新阶段

1.1 getDerivedStateFromProps

(1) 在创建或更新阶段调用或者在props、state和render方法前调用

1.2 shouldComponentUpdate

(1)在组件更新之前调用,可以控制组件是否进行更新, 返回true时组件更新, 返回false则不更新
(2)不要 shouldComponentUpdate 中调用 setState(),否则会导致无限循环调用更新、渲染,直至浏览器内存崩溃

1.3 render

1.4 getSnapshotBeforeUpdate

(1) render后执行,获取组件更新前的信息,即将对组件进行挂载时调用。

1.5 componentDidUpdate

(1)组件更新结束后触发。首次渲染不会执行

3、卸载阶段

1.1 componentWillUnmount

(1)组件卸载前调用
(2)此生命周期是取消网络请求、移除监听事件、清理 DOM 元素、清理定时器等操作的好时机

二、 旧生命周期

1、挂载阶段

constructor

componentWillMount(废弃)

render

componentDidMount

2、更新阶段

componentWillReceiveProps(废弃)

shouldComponentUpdate

componentWillUpdate(废弃)

render

componentDidUpdate

3、卸载阶段

componentWillUnmount

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用React生命周期方法是由React框架自动管理的,不需要手动调用。当组件被创建、更新或卸载时,React会自动调用相应的生命周期方法。以下是React常用的生命周期方法调用顺序: 1. 创建阶段: - constructor(props):组件的构造函数,在组件被创建时调用,用于初始化组件的状态和绑定事件等操作。 - static getDerivedStateFromProps(props, state):在组件被创建或接收到新的props时调用,用于根据props更新组件的状态。 - render():渲染组件的内容。 - componentDidMount():在组件被挂载到DOM后调用,用于执行一些需要DOM的操作,如数据获取、订阅事件等。 2. 更新阶段: - static getDerivedStateFromProps(props, state):在组件接收到新的props时调用,用于根据props更新组件的状态。 - shouldComponentUpdate(nextProps, nextState):在组件更新前调用,用于判断是否需要重新渲染组件,默认返回true。 - render():渲染组件的内容。 - getSnapshotBeforeUpdate(prevProps, prevState):在组件更新前调用,用于获取更新前的DOM状态,返回值将作为componentDidUpdate()的第三个参数传递。 - componentDidUpdate(prevProps, prevState, snapshot):在组件更新后调用,用于执行一些更新后的操作,如更新DOM、发送网络请求等。 3. 卸载阶段: - componentWillUnmount():在组件从DOM中移除前调用,用于清理组件的副作用,如取消订阅、清除定时器等。 需要注意的是,React 16.3版本之后,一些生命周期方法已经被废弃或替代,具体使用哪些生命周期方法取决于React版本和组件的需求。以上是常用的生命周期方法调用顺序,具体使用时请参考React官方文档或相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [react生命周期详细介绍](https://blog.csdn.net/luobo2345/article/details/122818947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值