react 组件的生命周期
- 组件的生命周期
- 过程
- 装载(Mounting) :组件被插入到 DOM 中;
- 更新(Updating) :组件重新渲染以更新 DOM;
- 卸载(Unmounting) :组件从 DOM 中移除。
- 过程
- 包含 will 的方法在某个时间节点之前执行
- 包含 did 方法在某个时间节点 之后 执行
- 三个阶段(按调用顺序
- 实例化(装载)

- getDefaultProps(在任何实例创建之前执行,不在装载阶段执行
- 该方法在 组件创建时( createClass )执行一次并缓存返回值。
- 如果组件使用时未设置属性,就从缓存中读取默认属性。
- getDefaultProps() 返回的缓存数据会在所有实例间共享。
- getInitialState
- 组件装载之前执行一次,返回值用作 this.state 的初始值。
- constructor
- 构造器。
- super();//第一行必须是这个。调用父组件的构造器。
- this.state = {......};//初始化实例的属性和组件的状态。
- componentWillMount
- 在完成首次渲染之前被调用。
- render(必需
- 创建一个虚拟DOM
- 只能通过this.props和this.state访问数据
- 可以返回null,false或者react组件
- 只能有一个顶级组件
- componentDidMount
- 真实的DOM已经被渲染之后调用
- 可以访问原始DOM,如测量渲染出DOM元素的高度,或用计时器操作它
- 此方法中可进行
- 与其他 JavaScript 框架集成,如初始化 jQuery 插件;
- 使用 setTimeout / setInterval 设置定时器;
- 通过 Ajax/Fetch 获取数据;
- 绑定 DOM 事件;
- 存在期(更新)

- componentWillReceiveProps(state改变时,不调用
- 组件的props发生改变时才调用(任意时刻,组件的props都可以通过父辈组件来更改
- 函数内可以更改props对象及更新state
- 此时props并没有改变,通过this.prop获取到的仍是还没有更改的
- shouldComponentUpdate
- componentWillReceiveProps调用后调用
- 首次渲染或调用了forceUpdate方法后不调用
- componentWillUpdate
- 组件会在接收到新的props或state进行渲染前,调用该方法
- 该方法中不可以更新state或props
- 此时props并没有改变,通过this.prop获取到的仍是还没有更改的
- render
- componentDidUpdate
- 更新渲染好的DOM
- 此处获取到的是改变后的props
- 销毁&清理期(卸载)
- componentWillUnmount
- 需要撤销componentDidMount中添加的所有任务,如:定时器、事件监听
- 反模式
- 尝试在constructor中通过this.props来创建state是一种反模式
- 从prop中计算然后将它赋值为state的做法也是一种反模式
- 正确模式应该是在渲染时,计算这些值
- 保证计算后的值永远不会与派生出它的props值不同步
react 组件的生命周期的更多相关文章
- 2. React组件的生命周期
2. React组件的生命周期 使用React开发时候用到最多的就是React的组件了,通过继承React.Component,加入constructor构造函数,实现Render方法即可.这当中Re ...
- React 组件的生命周期方法
React 组件的生命周期方法 按渲染顺序: 1: componentWillMount() – 在渲染之前执行,在客户端和服务器端都会执行. 2: componentDidMount() – 仅在第 ...
- react第三单元(react组件的生命周期)
第三单元(react组件的生命周期) #课程目标 灵活掌握react组件的生命周期以及组件的活动过程. 能够灵活使用react的生命周期 #知识点 react的类组件的生命周期分为三个阶段 实例期 存 ...
- React组件和生命周期简介
React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...
- 理解React组件的生命周期
本文作者写作的时间较早,所以里面会出现很多的旧版ES5的时代的方法.不过,虽然如此并不影响读者理解组件的生命周期.反而是作者分为几种不同的触发机制来解释生命周期的各个方法,让读者更加容易理解涉及到的概 ...
- React: React组件的生命周期
一.简介 在前面的第二篇博文中对组件的生命周期虽然做了一个大略介绍,但总感觉说的过于简单,毕竟生命周期是React组件的核心部分.在我们熟练使用React挂载和合成组件来创建应用表现层的过程中,针对数 ...
- react 组件的生命周期 超简版
组件从被创建到被销毁的过程称为组件的 生命周期: 通常,组件的生命周期可以被分为三个阶段:挂载阶段.更新阶段.卸载阶段: 一.挂载阶段 这个阶段组件被创建,执行初始化,并被挂载到DOM中,完成组件的第 ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- React 组件的生命周期API和事件处理
一.简单记录React的组件的简洁的生命周期API: A:实例化期: 一个实例第一次被创建时所调用的API与其它后续实例被创建时所调用的API略有不同. 实例第一次被创建时会调用getDefaultP ...
随机推荐
- JS-鼠标滚轮事件 和 阻止默认行为
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- CAReplicatorLayer复制Layer和动画, 实现神奇的效果
今天我们看下CAReplicatorLayer, 官方的解释是一个高效处理复制图层的中间层.他能复制图层的所有属性,包括动画. 一样我们先看下头文件 @interface CAReplicatorLa ...
- Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)
前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架.本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在<Swift3.0服务端开发(一)>这篇 ...
- 关于MVC结构
简单的记录,只是想记录一下现在对MVC的理解. MVC,即模型(MODEL),视图(VIEW),控制器(CONTROLLER) 模型是数据模型 视图是图形界面 控制器是在两个之间的控制部分,用来将数据 ...
- Mac系统安装Aircrack-ng破解wifi密码(2)
我们上一篇文章说过如何通过Aircrack-ng, 破解使用WPA/PSK加密方式的路由密码, 这一篇介绍的是使用Aircrack-ng破解使用WEP加密方式的路由密码: WEP和WPA/PSK的区别 ...
- [css]《css揭秘》学习(四)-一个元素实现内圆角边框
如图所示的圆角边框有两个元素很好实现,用一个元素也可以实现. <html> <head> <meta charset="utf-8"> < ...
- react+redux构建淘票票首页
react+redux构建淘票票首页 描述 在之前的项目中都是单纯的用react,并没有结合redux.对于中小项目仅仅使用react是可以的:但当项目变得更加复杂,仅仅使用react是远远不够的,我 ...
- salesforce 零基础学习(六十四)页面初始化时实现DML操作
有的时候我们往往会遇到此种类似的需求:用户在访问某个详细的记录时,需要记录一下什么时候哪个用户访问过此页面,也就是说进入此页面时,需要插入一条记录到表中,表有用户信息,record id,sObjec ...
- 纯CSS3动画:一棵跳舞的树
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/htm ...
- [译] AR SDK的种类比你想得要多!这里介绍七个棒棒哒
作者:Eddie Offermann 原文:There are dozens more Augmented Reality SDKs than you think! Here are seven gr ...