美文网首页
React生命周期函数

React生命周期函数

作者: 啥名都不好起 | 来源:发表于2020-01-08 10:32 被阅读0次

在旧版本的react中(16.9)一下的版本中react的生命周期分为:

constructor/(getDefaultProps、getInitialState):使用class的方式创建使用static defaultProps = {}定义组件属性的默认值,constructor初始化组件状态;使用creatClass的方法创建组件,使用getDefaultProps定义组件属性值的默认值,使用geInitialState初始化组件的状态

componentWillMount:组件渲染前执行

componentDidMount:组件渲染后执行

componentWillReceiveProps:组件接收到新的属性后执行

shouldComponentUpdate:在确定组件需要更新,并准备去更新前执行,返回false则不更新组件

componentWillUpdate:组件更新前执行

componentDidUpdate:组件更新后执行

componentWillUnmount:组件卸载之前执行

在新版本中这些生命周期函数有一些改动,首先新版本弃用了componentWillMount、componentWillReceivePorps,componentWillUpdate这三个生命周期,非要使用也是可以的但是在使用过程中会报一个“has been renamed”的警告,这个时候有以下解决办法:

1.在报警告的生命周期函数前面加上前缀“UNSAFE_”,这个据说有插件可以完成

2.降低react和react-dom的版本到16.9一下,推荐使用16.4.1这个版本

3.使用react提供的新的生命周期函数替代

这里着重说第三种方式:

在新版本的react中提供了两个新的生命周期函数,getDerivedStateFromPropsgetSnapshotBeforeUpdate来代替componentWillMountcomponentWillReceivePorpscomponentWillUpdate这三个生命周期函数,这两个版本的生命周期函数不能混用,并且getDerivedStateFromProps这个函数必须返回一个state,不然同样报错;

同时新增了componentDidCatchstatic getDerivedStateFromError两个处理错误的方法,当渲染过程,生命周期,或子组件的构造函数中抛出错误时,会调用两个方法;

并且新增了一个forceUpdate的api,这个api可以强制组件重新渲染,直接调用组件的render方法,所以如果是更新操作中使用了这个api的话,会阻断更新操作,去强制重新渲染组件

getDerivedStateFromProps:componentWillMount和componentWillReceviceProps的组件;当组件构建完成之后挂载渲染之前会调用;当接收到新的prop和state时会调用;每次接受到props后都要返回一个对象作为新的state,如果返回null则说明不需要更新state

getSnapshotBeforeUpdate:替代了componentWillUpdate的功能,接收参数是旧的props和旧的state;此生命周期函数的任何返回值,将作为参数传递给componentDidUpdate,作为componentDidUpdate的除了preProps和preState以外的参数;shouldComponentUpdate返回false后将不执行

static getDerivedStateFromError:在后代组件抛出异常或错误时触发,接收抛出的错误作为参数,并返回一个值用来更新state

componentDidCatch:在后代组件抛出异常或错误时触发,接收抛出的错误和异常组件的栈信息作为参数

相关文章

  • RN-生命周期函数(新)

    旧版生命周期函数 react 16.4 以后生命周期函数 http://projects.wojtekmaj.pl...

  • React 生命周期函数

    https://reactjs.org/docs/react-component.html React生命周期函数...

  • React的生命周期函数

    一、生命周期函数的定义 在某个时刻自动被调用的函数是生命周期函数 二、React中生命周期函数示意图 三、生命周期...

  • 04.React高级部分(中)

    React的生命周期函数 React生命周期函数的使用场景 这一小节,我们来做两个生命周期相关的常用操作1.如何避...

  • useState

    react-hooks 如果你熟悉 React class 的生命周期函数,你可以把 useEffect Hook...

  • 四:React 进阶三 (生命周期)

    react(一):组件的生命周期 生命周期函数 在组件运行的某个时刻,会被自动执行的一些函数。 React生命周期...

  • React快速上手5-react中的事件和生命周期函数

    这节中我们将主要介绍react应用中的事件和生命周期函数 React事件 在react中,我们不用addEvent...

  • react生命周期函数

    react 生命周期函数介绍[https://www.cnblogs.com/kdcg/p/9182393.htm...

  • 2020-09-11

    REACT生命周期 (JS胖老师课程 ) 生命周期函数指在某一个时刻组件会自动调用执行的函数 REACT生命周期的...

  • React 生命周期

    React 16.4 的生命周期图 早期React生命周期图 从图中,我们看到了一些变化 废弃的三个生命周期函数 ...

网友评论

      本文标题:React生命周期函数

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