React生命周期及使用场景

218 阅读1分钟

概念

生命周期函数是指在某一个时刻组件会自动执行的函数。

  • componentWillMount

    在组件即将被挂载到页面的时候,自动执行。(仅第一次)

  • render

    父组件执行,则子组件也会跟着执行该钩子。

  • componentDidMount

    在组件被挂载到页面之后,自动执行。(仅第一次)

  • shouldComponentUpdate

    组件被更新之前,自动执行,需要返回一个boolean值。

  • componentWillUpdate

    组件被更新前,自动执行;在shouldComponentUpdate之后,根据shouldComponentUpdate返回的boolean值决定是否执行。

  • componentDidUpdate

    组件更新完成之后,自动执行。

  • componentWillReceiveProps

    一个子组件接收父组件的参数,子组件首次存在于父组件中时不会执行,子组件再次存在于父组件时该函数才会执行。

  • componentWillUnmount

    组件即将从页面剔除的时候自动执行。

image.png

使用场景

  • componentDidMount

    发送ajax请求(理论上constructor函数中也可以)

  • shouldComponentUpdate

    避免子组件render做无谓的执行,提升性能。


react的性能提升

  • 作用域

    作用域的修改写于constructor中,保证整个程序中, 函数作用域的绑定操作只会执行一次。

image.png

  • setState

    异步函数,可以将多次state的改变整合成一次,降低虚拟DOM的比对频率。

  • 虚拟DOM

    同层对比+key,提升虚拟DOM比对的效率。