react生命周期(包含16.8.6版本)

2019-08-05  本文已影响0人  Mr无愧于心

在组件实例被创建和插入DOM中被调用

  1. constructor()
类初始化调用,可用来初始化stete
  1. static getDerivedStateFromProps(nextProps, prevState)
组件实例化后和接受新属性时将会调用getDerivedStateFromProps。
用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;
它返回一个对象表示新的 state;如果不需要更新,返回 null 即可。

注意,如果父组件导致了组件的重新渲染,即使属性没有更新,这一方法也会被调用。
如果你只想处理变化,你可能想去比较新旧值。

  1. componentWillMount()(将要废弃)
render前,所以setState不会重新渲染,服务端渲染唯一调用,推荐用constructor代替之
  1. render()
渲染jsx
  1. componentDidMount()
componentDidMount()在组件被装配后立即调用。
初始化使得DOM节点应该进行到这里。
若你需要从远端加载数据,这是一个适合实现网络请求的地方。
在该方法里设置状态将会触发重渲。

更新

  1. componentWillReceiveProps()(将要废弃)
已挂载组件接收到新props触发
  1. static getDerivedStateFormProps()
组件实例化后和接受新属性时将会调用getDerivedStateFromProps。
用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;
它返回一个对象表示新的 state;如果不需要更新,返回 null 即可。

注意,如果父组件导致了组件的重新渲染,即使属性没有更新,这一方法也会被调用。
如果你只想处理变化,你可能想去比较新旧值。
  1. shouldComponentUpdate(nextProps, nextState)
使用shouldComponentUpdate()以让React知道当前状态或属性的改变是否不影响组件的输出。

如果存在性能问题:请使用pureComponent代替component
除了为你提供了一个具有浅比较的shouldComponentUpdate方法,PureComponent和Component基本上完全相同。
当props或者state改变时,PureComponent将对props和state进行浅比较。
另一方面,Component不会比较当前和下个状态的props和state。
因此,每当shouldComponentUpdate被调用时,组件默认的会重新渲染。
  1. componentWillUpdate()(将要废弃)
组件改变之前执行
  1. getSnapshotBeforeUpdate(prevProps, prevState)
用于替换 componentWillUpdate,
该函数会在update后 DOM 更新前被调用,
用于读取最新的 DOM 数据,
返回值将作为 componentDidUpdate 的第三个参数
  1. componentDidUpdate(nextProps, nextState)
componentDidUpdate()会在更新发生后立即被调用

卸载

  1. componentWillUnmount()
卸载组件,可以用来清除计时器,解绑事件
上一篇下一篇

猜你喜欢

热点阅读