react学习之路之生命周期

react

创建时(挂载阶段)

  • List item
  • 执行顺序:constructor()、render() 、componentDidMount()

钩子函数触发时机作用
constructor创建时最先执行初始化state、为事件处理程序绑定this
render每次组件渲染都会触发渲染UI,不能调用setState()

componentDidMount组件挂在(完成DOM渲染)后发送网络请求、DOM操作

  • 注意:setState() 的调用会触发render(),从而导致递归

更新时(更新阶段)

  • 执行时机:setState() 、forceUpdate() 、组件接收到新的props
  • 说明:以上三者任意一种变化,组件就会重新渲染
  • 执行顺序:render()、componentDidUpdate()

    钩子函数触发时机作用
    render每次组件选人都会触发渲染UI(与挂载阶段是同一个render)
    componentDidUpdate(prevProps)组件更新(完成DOM渲染)后发送网络请求、DOM操作、注意:如果要setState()必须放在if条件中,一般判断条件为,更新前后的props

卸载时(卸载阶段)

  • 说明:组件从页面中消失

    钩子函数触发时机作用
    componentWillUnmount组件卸载执行清理工作(比如清理定时器)

其他生命周期钩子

钩子函数作用
shouldComponentUpdate问题:有时候我们调用了setState() 但是没有改变里面state中的值或者props中的值没有发生变化都会导致UI渲染.解决方法:shouldComponentUpdate (nextProps, nextState), 中有两个参数,可以对比下次的state中的值和当前state中的值是否一样(nextState.number === this.state.number),来决定是否执行render钩子函数(return true 渲染、return false 不渲染)

以上是 react学习之路之生命周期 的全部内容, 来源链接: utcz.com/z/381453.html

回到顶部