美文网首页Front End
[React] React组件的生命周期

[React] React组件的生命周期

作者: 何幻 | 来源:发表于2017-01-07 23:03 被阅读12次

注:
(1)componentDidMount只会在组件初始化的时候调用。
组件加载完后,再执行this.setState不会调用该方法,而是调用shouldComponentUpdate

(2)当父组件更新子组件属性的时候,所有子组件的componentWillReceiveProps(nextProps)会被调用。
即使当前子组件的props没有改变,组件的该方法也会被调用
该函数不返回布尔值,而是对比this.props(旧)与nextProps(新),通过this.setState更改组件状态。

Note that React may call this method even if the props have not changed, so make sure to compare the current and next values if you only want to handle changes. This may occur when the parent component causes your component to re-render.
——React.Component: componentWillReceiveProps()

(3)shouldComponentUpdate默认返回true
如果返回falsecomponentWillUpdate render componentDidUpdate方法就不被调用;
如果返回true,这些方法将被调用,React会通过diff算法更新DOM。

(4)以下流程是固定的,能影响流程的只有shouldComponentUpdate

// 当前组件和子组件shouldComponentUpdate都为true

Page: componentWillMount
Page: render
    A: componentWillMount
    A: render
    A: componentDidMount
Page: componentDidMount

Page: setState
Page: shouldComponentUpdate ---- true
Page: componentWillUpdate
Page: render
    A: componentWillReceiveProps
    A: shouldComponentUpdate ---- true
    A: componentWillUpdate
    A: render
    A: componentDidUpdate
Page: componentDidUpdate
// 子组件shouldComponentUpdate为false

Page: componentWillMount
Page: render
    A: componentWillMount
    A: render
    A: componentDidMount
Page: componentDidMount

Page: setState
Page: shouldComponentUpdate ---- true
Page: componentWillUpdate
Page: render
    A: componentWillReceiveProps
    A: shouldComponentUpdate ---- false
Page: componentDidUpdate
// 当前组件的shouldComponentUpdate为false

Page: componentWillMount
Page: render
    A: componentWillMount
    A: render
    A: componentDidMount
Page: componentDidMount

Page: setState
Page: shouldComponentUpdate ---- false

参考

Component Specs and Lifecycle

相关文章

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React 组件生命周期

    组件生命周期 参考阅读: component-lifecycle react组件生命周期过程说明 react 组件...

  • React总结

    [toc] 1.React组件生命周期 1.1 生命周期图 组件的生命周期的图如下: 具体可参考React 组件生...

  • Notes On React - Two

    React 的生命周期   React组件 的生命周期大致可分成四个状态:  - Mounting:装配-组件实例...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • React入门(二)

    三、React组件 React 组件基本上是由组件的构建方式、组件内的状态属性与生命周期方法组成 React.cr...

  • React入门--组件生命周期

    React组件有自己的生命周期方法,React将组件从挂载(Mounting)-->更新(Updating)-->...

  • react(最近搞了一套react项目的视频 全套 有需

    React 组件生命周期在本章节中我们将讨论 React 组件的生命周期。 组件的生命周期可分成三个状态: Mou...

  • React

    Redux React组件的生命周期 在react的componentWillReceiveProps(nextP...

  • 006@React组件的生命周期.md

    006@React组件的生命周期.md React Native 是基于组件化开发。弄清楚组件的生命周期对于我们开...

网友评论

    本文标题:[React] React组件的生命周期

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