1. 组件的生命周期
    1. 过程
      1. 装载(Mounting) :组件被插入到 DOM 中;
      2. 更新(Updating) :组件重新渲染以更新 DOM;
      3. 卸载(Unmounting) :组件从 DOM 中移除。
    2. 过程
      1. 包含 will 的方法在某个时间节点之前执行
      2. 包含 did 方法在某个时间节点 之后 执行
    3. 三个阶段(按调用顺序
      1. 实例化(装载)
    1. getDefaultProps(在任何实例创建之前执行,不在装载阶段执行
      1. 该方法在 组件创建时( createClass )执行一次并缓存返回值。
      2. 如果组件使用时未设置属性,就从缓存中读取默认属性。
      3. getDefaultProps() 返回的缓存数据会在所有实例间共享。
    2. getInitialState
      1. 组件装载之前执行一次,返回值用作 this.state 的初始值。
    3. constructor
      1. 构造器。
      2. super();//第一行必须是这个。调用父组件的构造器。
      3. this.state = {......};//初始化实例的属性和组件的状态。
    4. componentWillMount
      1. 在完成首次渲染之前被调用。
    5. render(必需
      1. 创建一个虚拟DOM
      2. 只能通过this.props和this.state访问数据
      3. 可以返回null,false或者react组件
      4. 只能有一个顶级组件
    6. componentDidMount
      1. 真实的DOM已经被渲染之后调用
      2. 可以访问原始DOM,如测量渲染出DOM元素的高度,或用计时器操作它
      3. 此方法中可进行
        1. 与其他 JavaScript 框架集成,如初始化 jQuery 插件;
        2. 使用 setTimeout / setInterval 设置定时器;
        3. 通过 Ajax/Fetch 获取数据;
        4. 绑定 DOM 事件;
  • 存在期(更新)
      1. componentWillReceiveProps(state改变时,不调用
        1. 组件的props发生改变时才调用(任意时刻,组件的props都可以通过父辈组件来更改
        2. 函数内可以更改props对象及更新state
        3. 此时props并没有改变,通过this.prop获取到的仍是还没有更改的
      2. shouldComponentUpdate
        1. componentWillReceiveProps调用后调用
        2. 首次渲染或调用了forceUpdate方法后不调用
      3. componentWillUpdate
        1. 组件会在接收到新的props或state进行渲染前,调用该方法
        2. 该方法中不可以更新state或props
        3. 此时props并没有改变,通过this.prop获取到的仍是还没有更改的
      4. render
      5. componentDidUpdate
        1. 更新渲染好的DOM
        2. 此处获取到的是改变后的props
    • 销毁&清理期(卸载)
      1. componentWillUnmount
      2. 需要撤销componentDidMount中添加的所有任务,如:定时器、事件监听
  • 反模式
    1. 尝试在constructor中通过this.props来创建state是一种反模式
    2. 从prop中计算然后将它赋值为state的做法也是一种反模式
    3. 正确模式应该是在渲染时,计算这些值
    4. 保证计算后的值永远不会与派生出它的props值不同步

react 组件的生命周期的更多相关文章

  1. 2. React组件的生命周期

    2. React组件的生命周期 使用React开发时候用到最多的就是React的组件了,通过继承React.Component,加入constructor构造函数,实现Render方法即可.这当中Re ...

  2. React 组件的生命周期方法

    React 组件的生命周期方法 按渲染顺序: 1: componentWillMount() – 在渲染之前执行,在客户端和服务器端都会执行. 2: componentDidMount() – 仅在第 ...

  3. react第三单元(react组件的生命周期)

    第三单元(react组件的生命周期) #课程目标 灵活掌握react组件的生命周期以及组件的活动过程. 能够灵活使用react的生命周期 #知识点 react的类组件的生命周期分为三个阶段 实例期 存 ...

  4. React组件和生命周期简介

        React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...

  5. 理解React组件的生命周期

    本文作者写作的时间较早,所以里面会出现很多的旧版ES5的时代的方法.不过,虽然如此并不影响读者理解组件的生命周期.反而是作者分为几种不同的触发机制来解释生命周期的各个方法,让读者更加容易理解涉及到的概 ...

  6. React: React组件的生命周期

    一.简介 在前面的第二篇博文中对组件的生命周期虽然做了一个大略介绍,但总感觉说的过于简单,毕竟生命周期是React组件的核心部分.在我们熟练使用React挂载和合成组件来创建应用表现层的过程中,针对数 ...

  7. react 组件的生命周期 超简版

    组件从被创建到被销毁的过程称为组件的 生命周期: 通常,组件的生命周期可以被分为三个阶段:挂载阶段.更新阶段.卸载阶段: 一.挂载阶段 这个阶段组件被创建,执行初始化,并被挂载到DOM中,完成组件的第 ...

  8. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  9. React 组件的生命周期API和事件处理

    一.简单记录React的组件的简洁的生命周期API: A:实例化期: 一个实例第一次被创建时所调用的API与其它后续实例被创建时所调用的API略有不同. 实例第一次被创建时会调用getDefaultP ...

随机推荐

  1. --@angularjs--理解Angular中的$apply()以及$digest()

    $apply() 和 $digest() 在 AngularJS 中是两个核心概念,但是有时候它们又让人困惑.而为了了解 AngularJS 的工作方式,首先需要了解 $apply() 和 $dige ...

  2. Struts2拦截器介绍

    一.拦截器简介 Struts拦截器和Action的关系如图: 为了在使用拦截器时制定参数值,应通过<interceptor-ref -/>元素添加<param -/>子元素来为 ...

  3. VMware虚拟机与宿主无法复制的解决办法

    由于工作需要,上网机器使用虚拟机,因此需要经常来回的拷贝文件,而vmware从6.5一直走来到10.0.1,总是有一个问题很让人苦恼---共享粘贴板总是会无故失效.经常实验,发现可以经过以下方法临时解 ...

  4. 解剖 Elasticsearch 集群 - 之三

    解剖 Elasticsearch 集群 - 之三 本篇文章是一系列涵盖 Elasticsearch 底层架构和原型示例的其中一篇.在本篇文章中,我们会讨论 Elasticsearch 如何提供准实时搜 ...

  5. javascript window.confirm确认 取消对话框实现代码小结

    本文章讲述的三种都是基于了javascript confirm提示确认框的做法了,只是在不同的地方写哦,有需要的同学可参考一下   confirm() 方法 confirm() 方法用于显示一个带有指 ...

  6. ubuntu开机自动关闭独显,使用集成显卡

    我的本子是联想y470p-ise,因为是有双显卡,而ubuntu在开机后,双显卡默认是同时工作,会产生巨大的发热,导致很不爽.而且在ubuntu下基本我也不用独显,所以有开机关闭独显的需求. ubun ...

  7. java7 invokedynamic命令深入研究

    在看java虚拟机字节码执行引擎的时候,里面提到了java虚拟机里调用方法的字节码指令有5种: invokestatic //调用静态方法 invokespecial //调用私有方法.实例构造器方法 ...

  8. Unity随手记

    过年11天假期,带娃带了7天,吃吃喝喝.也看了点书,<射雕英雄传>(书)看了一半,还有就是在看<unity官方案例精讲>这本. 随手记一些自觉有价值或者有意思的点. 1. 对脚 ...

  9. HDU 2092 整数解

    整数解 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  10. Import Statements 导入语句

    Syntax of an Import Statement 导入语句的语法 An import statement allows clients to tell the engine which mo ...