美文网首页
组件的生命周期(新)react版本17.0

组件的生命周期(新)react版本17.0

作者: 转移到CSDN名字丹丹的小跟班 | 来源:发表于2021-03-15 10:31 被阅读0次

在17版本中弃用了 componentWillMount,componentwillReceiveProps,componentWillUpdate,增加了getDerivedStateFromProps(nextProps, prevState)getSnapshotBeforeUpdate

react生命周期(新).png
新的生命周期主要分为三条大线:挂载时,更新时,卸载时,这里主要讲讲更新时。

无论是props值更新(一般是父子组件关系,将state作为参数传给子组件,包括第一次传送),setState状态更新还是forceUpdate强制更新,首先都会触发getDerivedStateFromProps这个周期函数。然后除了forceUpdate外,props以及状态更新还会触发shouldComponentUpdate生命周期函数(当然,与getDerivedStateFromProps不同的是这个第一次绑定数据时或初始化时不会触发)。接着三者共同调用render方法,和getSnapshotBeforeUpdate方法,最后进行组件更新以及更新完成的生命周期函数。

getDerivedStateFromProps(nextProps,curState)
主要作用:根据传入的 props 来更新state
该方法是一个 static 方法意味着这个方法是属于 React.Component 类的方法,所以方法内是无法使用 this 的,这就意味着无法使用this.setState 来更新state,所以这个方法直接通过返回对象的形式来更新state,如果某些 props 的情况不需要更新 state,那么就返回 null 就好。实际上这个方法和 componentDidUpdate搭配使用,就能覆盖 之前componentWillReceiveProps 的所有使用场景了。

getSnapshotBeforeUpdate(preProps, preState)
1、在更新之前获取组件的快照,在组件更新前触发
2、它的返回值会作为第三个参数传递给后面的 componentDidUpdate 参数中,和 componentDidUpdate 一起使用,能覆盖掉 componentWillUpdate 的所有使用场景了

相关文章

  • 组件的生命周期(新)react版本17.0

    在17版本中弃用了 componentWillMount,componentwillReceiveProps,co...

  • react重点

    React组件的生命周期(React16.4版本) 1.constructor方法 用于组件内部的state初始化...

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React 17.0 RC 引入新的JSX转换

    尽管之前React 17.0的主版本号已经说过了,17.0是一个没有新功能的,主要侧重于React本身的升级,把1...

  • React 组件生命周期

    组件生命周期 参考阅读: component-lifecycle react组件生命周期过程说明 react 组件...

  • 【译】最新版本react组件生命周期详解(v16.3.1)

    16版本的react对组件的生命周期函数进行了一些修改,在每个react组件中都有以下几个生命周期方法~我们需要在...

  • react新生命周期记录(v16.3)

    16版本的react对组件的生命周期函数进行了一些修改,在每个react组件中都有以下几个生命周期方法~我们Rea...

  • 浅谈React16组件的生命周期

    React在16版本的时候对组件的生命周期函数作出了一些修改,这里我们简单来了解一下新的生命周期函数。 组件生命周...

  • React总结

    [toc] 1.React组件生命周期 1.1 生命周期图 组件的生命周期的图如下: 具体可参考React 组件生...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

网友评论

      本文标题:组件的生命周期(新)react版本17.0

      本文链接:https://www.haomeiwen.com/subject/rfihcltx.html