react学习之路之生命周期

创建时(挂载阶段)
  • List item
  • 执行顺序:constructor()、render() 、componentDidMount()
钩子函数触发时机作用
constructor创建时最先执行初始化state、为事件处理程序绑定this
render每次组件渲染都会触发渲染UI,不能调用setState()
componentDidMount组件挂在(完成DOM渲染)后发送网络请求、DOM操作
  • 注意:setState() 的调用会触发render(),从而导致递归
更新时(更新阶段)
  • 执行时机:setState() 、forceUpdate() 、组件接收到新的props
  • 说明:以上三者任意一种变化,组件就会重新渲染
  • 执行顺序:render()、componentDidUpdate()
    钩子函数触发时机作用
    render每次组件选人都会触发渲染UI(与挂载阶段是同一个render)
    componentDidUpdate(prevProps)组件更新(完成DOM渲染)后发送网络请求、DOM操作、注意:如果要setState()必须放在if条件中,一般判断条件为,更新前后的props
卸载时(卸载阶段)
  • 说明:组件从页面中消失
    钩子函数触发时机作用
    componentWillUnmount组件卸载执行清理工作(比如清理定时器)
其他生命周期钩子
钩子函数作用
shouldComponentUpdate问题:有时候我们调用了setState() 但是没有改变里面state中的值或者props中的值没有发生变化都会导致UI渲染.解决方法:shouldComponentUpdate (nextProps, nextState), 中有两个参数,可以对比下次的state中的值和当前state中的值是否一样(nextState.number === this.state.number),来决定是否执行render钩子函数(return true 渲染、return false 不渲染)

生命周期钩子函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值