react生命周期总结

         刚学习react的时候就对生命周期做了一次总结,这次应用中却发现可能运用的不太好。生命周期的错误使用可能导致代码中出现奇奇怪怪的bug,Fiber机制的更改也是更改了某些生命周期,导致了某些生命周期的废弃。这边对react生命周期进行再次的总结,这一次真正理清react生命周期。

      当组件实例被插入到dom实例中,实现的生命周期顺序如下:

      constructor:构造函数,这边一般进行初始state的赋值

      componentWillmount:(已被废弃,尽量避免使用)

      getDerivedStateFromProps(props, state):在render之前触发,返回一个对象来更新state

      render():渲染

      componentDidMount:会在组件渲染之后立即执行,这边适合需要操作dom,以及发送ajax请求

 

  更新阶段:

  getDerivedStateFromProps(props, state):通过返回一个对象来更新state

  shouldComponentUpdate(nextProps, nextState):组件优化的重要生命周期,减少组件的重复渲染,默认返回false,当state,props发生变化时,会重新渲染。可以通过比较state,nextState,props,nextProps来减少重新渲染。

  render:渲染

  getSnapShotBeforeUpdate(prevProps, prevState):render之后执行,可以拿到dom相关信息,返回一个值作为参数传给componentDidUpdate()

  componentDidUpdate(prevProps, prevState,snapshot):

 

  卸载阶段:

componentWillUnmount:组件卸载时调用,在这里实现一些清除操作

 

补充:还有一些生命周期在16的时候已经被废弃,这边就没有指出了,这是因为之前的调和阶段是同步执行的,现在fiber机制更改之后,react会按照优先级进行异步的更新,这样子避免了阻塞问题,但是因为改成异步流程,一些更新会因为其他的插入等问题会多次的被打断重启,这样子某些生命周期(componentWillmount,componentWillUpdate,componentWillReceivesProps)就会多次执行,可能会造成一些bug,所以尽量避免使用。

posted @ 2022-04-24 11:17  千亿昔  阅读(38)  评论(0编辑  收藏  举报