React 生命周期方法对比

1、生命周期方法对比

2、生命周期方法的使用

本文参考·react官方文档:http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

 

1、生命周期方法前后对比图

React çå½å¨æå¾è§£

相同点:

1)声明周期均划分为 创建、 更新、 销毁三个阶段

2)  常用声明周期方法未变更,如 render、 componentDidMount、 componentDidUpdate、 componentWillUnmount等

不同点:

1) 创建阶段: 旧版本组件构造函数调用完成之后会有componentWillmount方法,新版本省略,新增getDerivedStateFromProps方法(并不常用),且该方法在组件props,state变更时也会被调用

2)更新阶段:  当shouldComponentUpdate返回ture后,会调用rende方法重新渲染组件。在组件更新完成之前有getSnapShotBeforeUpdate方法

 

2、生命周期方法的使用

1)

// constructor作用:
// 1、super(props) 继承父类的属性, 此后可以使用this , this.props
// 2、this.state   初始化state,注意这里对state直接进行赋值操作,其他时候如果需要变更state需要setState(重点)
// 3、事件的绑定:参考官方文档,如何进行事件处理,及事件处理过程中this的绑定https://reactjs.org/docs/handling-events.html

constructor(props){
    super(props)
    this.state = {
        name: 'lei',
        age : 24
    }
    this.handleClick = this.handleClick.bind(this)
}

2)componentDidmount

这个比较常用了,通常在这里处理一些副作用,如请求后端接口。

3)shouldComponentUpdate

//nextProps、 nextState表示更新之后的参数,this.state为未变更时参数
//返回值为ture || false
shouldComponentUpdate(nextProps, nextState) {
    return this.state.name == nextState.name
}

4)componentDidupdate

//接收参数为更新前的props、state
//一般不要在这个生命周期中调用setState,除非有状态判断
//这个生命周期中进行可以获取数据等副作用操作
componentDidUpdate(prevProps, prevState, snapshot){
    if(this.state.name == prevState.name){
        //...
        this.getData();
    }
}

5、componentWillUnMount

在组件被卸载和销毁之前立即调用。在此方法中执行任何必要的清理,例如使计时器无效、取消网络请求或清除在组件

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue和React是两个流行的前端框架,它们的生命周期在概念上有些不同。下面是Vue和React生命周期的对比: Vue的生命周期: 1. beforeCreate:在实例初始化之后,数据观测和事件配置之前调用。 2. created:在实例创建完成后调用,在这一步,实例已完成数据观测,属性和方法的运算,但是还没有进行DOM的挂载。 3. beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。 4. mounted:挂载完成后调用,此时,组件已经显示到页面上。 5. beforeUpdate:在数据更新之前调用,在这一步,可以对更新之前的状态进行修改。 6. updated:数据已经更新完成后调用,此时,组件已经重新渲染完成。 7. beforeDestroy:在实例销毁之前调用,此时,实例仍然完全可用。 8. destroyed:实例销毁之后调用,此时,组件已经被完全卸载,所有的事件监听器和子实例已经被移除。 React生命周期: 1. constructor:在组件被创建时调用,可以进行初始化工作。 2. static getDerivedStateFromProps:在组件接收到新的props时调用,返回新的state值。 3. render:根据props和state渲染组件的UI。 4. componentDidMount:组件挂载后调用,可以进行异步数据获取等操作。 5. shouldComponentUpdate:在组件更新前调用,用于决定是否需要重新渲染组件。 6. getSnapshotBeforeUpdate:在组件更新前调用,用于获取更新前的DOM状态。 7. componentDidUpdate:组件更新后调用,可以进行DOM操作。 8. componentWillUnmount:组件即将卸载时调用,进行清理操作。 需要注意的是,React 16.3版本之后引入了新的生命周期方法,如getDerivedStateFromProps和getSnapshotBeforeUpdate,用于替代之前的生命周期方法。而Vue的生命周期相对较简单,并且更注重于组件的渲染和数据变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值