react-生命周期函数

来源:互联网 发布:常见网络诈骗手段有 编辑:程序博客网 时间:2024/05/23 16:02

react生命周期分为三个阶段

1. Mounting 组件初始化

  • constructor()一般把组件的 state 的初始化工作放在 constructor 里面去做。
  • getDefaultProps()设置组件默认的属性,注意这个钩子函数只会在第一次实例化的时候被调用,多次实例化的组件会共享同一份props。
  • getInitialState()组件的初始化状态,可以通过用户的操作来更改组件自身的状态。
  • componentWillMount() 在渲染前调用,在该方法中同步设置状态不会触发重新渲染,可以进行组件的启动工作,例如 Ajax 数据拉取、定时器的启动。
  • render()组件渲染
  • componentDidMount() 在第一次渲染之后调用,在该方法中科通过this.getDOMNode()访问到真实的DOM元素,此时已可以使用其他类库来操作这个DOM。一般来说,有些组件的启动工作是依赖 DOM 的,例如动画的启动,而 componentWillMount 的时候组件还没挂载完成,所以没法进行这些启动工作,这时候就可以把这些操作放在 componentDidMount 当中。
    2. Updating 更新组件
  • componentWillReceiveProps()在组件接收到新的props时被调用,在第一次渲染时不会调用,此时可以更改组件的props及state。
  • shouldComponentUpdate()返回一个布尔值,在组件接收到新的props或者state时被调用,在初始化时或者使用forceUpdate时不被调用,可以在你确认不需要更新组件时被调用(在某些当属性或者状态不发生变化的时候可以收到return false)。
  • (组件是否应当渲染新的props或者state,返回false表示跳过后续的生命周期方法,通常不需要使用以避免出现bug,在出现应用的瓶颈时,可通过该方法进行适当的优化)。
  • componentWillUpdate() 在组件完成更新之前立即被调用,作为在更新发生之前执行的准备,在初始化时不会被调用(此时不允许更新props或者state)。
  • componentDidUpdate()在组件完成更新后立即被调用,初始化时不会被调用,此时可以访问到新的DOM元素。组件重新渲染并且把更改变更到真实的 DOM 以后调用。如果shouldComponentUpdate()返回false则该方法不会被调用。

    3.Unmounting 销毁组件

  • componentWillUnmount() 在组件被销毁之前被调用。组件从页面上销毁的时候,有时候需要一些数据的清理,例如定时器的清理,就会放在 componentWillUnmount 里面去做。
原创粉丝点击