React生命周期

本文详细探讨了React组件的生命周期,包括新旧两种生命周期钩子。挂载时涉及的钩子有constructor、getDerivedStateFromProps、render和componentDidMount,更新时有shouldComponentUpdate和componentDidUpdate,卸载时有componentWillUnmount。新生命周期着重介绍了如何进行性能优化和DOM操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新生命周期钩子

 挂载时

(1)constructor

①触发时机:创建组件时,最先执行

②作用:1.初始化state 2.为事件处理程序绑定this

(2)getDerivedStateFromProps

①触发时机:在调用render方法之前调用,并且在初始化挂载及后续更新时都被调用。

②作用:返回一个一个对象来更新state,如果返回null则不更新任何内容

(3)render

①触发时机:每次组件被渲染的时候都会被触发

②作用:渲染ul结构(注意:不能调用setState())

(4)componentDidMount

①触发时机:组件挂载后(完成DOM渲染)后

②作用:1.发送网络请求2.DOM操作

更新时

执行时机:setState() 、forceUpdate() 、组件接收到新的props

(1)shouldComponentUpdate(nextProps,nextState)

①触发时机:组件更新触发

②作用: 可极大提高性能,因为每次dom的描绘非常消耗性能,shouldComponentUpdate可以控制Dom的渲染,默认情况下,它返回true。如果你确定组件在状态或道具更新后不需要渲染,则可以返回false值。这是提高性能的好地方,因为如果组件收到新的props,它可以防止重新渲染。

(2)render

(3)getSnapshotBeforeUpdate

①触发时机:在最近一次渲染输出(提交到 DOM 节点)之前调用。

②作用:组件能在发生更改之前从 DOM 中捕获一些信息(例如,滚动位置)。此生命周期的任何返回值将作为参数传递给 componentDidUpdate()

(4)componentDidUpdate

①触发时机: 组件更新(完成DOM渲染)后

②作用:1.发送网络请求2.DOM操作   (如果要setState()必须放在一个if条件中)

卸载

(1)componentWillUnmount

①触发时机:组件卸载(从页面消失)

②作用:执行清理工作(清理定时器等!)性能优化

2.旧生命周期钩子

 挂载时

(1)constructor

(2)componentWillMount

(3)render

(4)componentDidMount

更新时

(1)componentWillReceiveProps

(2)shouldComponentUpdate

(3)ComponentWillUpdate

(4)render

(5)componentDidUpdate

卸载

(1)componentWillUnmount

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值