美文网首页
React学习总结3--生命周期函数

React学习总结3--生命周期函数

作者: 琉璃_xin | 来源:发表于2019-08-15 20:12 被阅读0次

    每个组件都包含“生命周期方法”。速查表
    demos源码

    挂载

    当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下:

    如果上层组件中有Component组件以及PureComponent组件,那么打印出生命周期的调用结果为:

    挂载阶段

    这里使用了PureComponent,它会在shouldComponentUpdate中对 props 和 state 进行浅层比较,并减少了跳过必要更新的可能性。可以通过update过程来验证。

    更新

    当组件的 props 或 state 发生变化时会触发更新。组件更新的生命周期调用顺序如下:

    getDerivedStateFromProps
    shouldComponentUpdate
    render
    -sub getDerivedStateFromProps
    -sub render
    ------com getDerivedStateFromProps
    ------com render
    ---puresub getDerivedStateFromProps
    getSnapshotBeforeUpdate
    ------com componentDidUpdate
    -sub componentDidUpdate
    componentDidUpdate
    

    可以发现PureComponent并没有重新render,这是因为shouldcomponentupdate返回了false。我们可以多使用PureComponent来减少不必要的渲染过程,进而优化性能。

    卸载

    当组件从 DOM 中移除时会调用如下方法:

    错误处理

    当渲染过程,生命周期,或子组件的构造函数中抛出错误时,会调用如下方法:

    可以使用setState的生命周期

    • componentWillMount
    • componentDidMount
    • componentDidUpdate
      这里必须要有前置条件,否则会陷入update的死循环。

    static getDerivedStateFromProps(props, state)

    这个生命周期适用于 state 的值在任何时候都取决于 props。让组件在 props 变化时更新 state。

    相关文章

      网友评论

          本文标题:React学习总结3--生命周期函数

          本文链接:https://www.haomeiwen.com/subject/soiajctx.html