哈喽,这是我的第一篇博客,请大家多多关照~

追根溯源:What's the lifeCycle?

生命周期函数指在某一时刻组件会自动调用执行的函数;

React生命周期概览:

接下来我们就着生命周期的概念(抠字眼:某一时刻    自动调用执行)来深入理解一下React;

render生命周期我们需要单独拎出来理解,因为触发到它的地方会比较多;render函数记住如下两点,就很好理解了:

①.当组件的 props 和 state 发生变化时,render函数重新执行;

②.当父组件的render函数被运行时,它的子组件的render函数都将被重新执行;

Initialization(setup props and state):React 中的初始化亦即 constructor ,固定写法如下: super(props) 主要用于继承;

那么constructor算不算是React的生命周期呢,其实严格意义上来说是算不上的。因为constructor是ES6的特性,并非React所私有,所以严格意义上讲是不属于React的生命周期的;

Mounting(DOM挂载,首先我们明确一个问题,DOM挂载只会在页面初次渲染的时候调用);

componentWillMount:见名知意,该周期函数是 在DOM元素即将挂载到页面的时候 自动调用执行;

render:在页面初次渲染的时候也会调用render函数,调用时间段在 componentWillMount  之后,componentDidMount之前;

componentDidMount:见名知意,该周期函数是在 DoM元素挂载到页面的时候 自动调用执行;

Updation(更新):更新分为两种情况,一种是 props 发生变化,一种是 state 发生变化;下面先分享一下props和state公有的生命周期:

shouldComponentUpdate:组件被更新之前会被自动执行,要求返回布尔值(true or false),见名知意,询问组件是否要更新,如果返回结果为true,则继续更新,如果返回结果为false,则不再往下执行了;

componentWillUpdate:组件在更新之前并且在shouldComponentUpdate返回值为true时自动调用执行;

render:有更新,符合render重新渲染条件,则此时会重新渲染一遍;

componentDidUpdate:组件更新完成之后自动调用执行;

上述 shouldComponentUpdate,componentWillUpdate,componentDidUpdate 为 props和state 改变时公有的生命周期;然后在 props 发生变化时,还有一个独有的更新相关的生命周期:

componentWillReceiveProps:对于这个生命周期呢,见名知意,此生命周期跟props息息相关,那么跟props息息相关的就只有子组件了,关于它,有两种描述,便于理解:

①.当一个组件从父组件接收了参数,只要父组件的render函数被重新执行了,子组件的这个生命周期函数就会被执行;

②.换言之,如果此组件初次存在父组件中,该生命周期函数不会被执行,当第二次出现在父组件中时才会执行;

Unmounting(组件即将要从页面剔除的时候):

componentWillUnmount:当这个组件即将被从页面中剔除的时候,会自动调用执行;在被移除的一瞬间;(child componentWillUnmount);

React之生命周期的更多相关文章

  1. react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新

    场景:数据新增成功之后,需要返回原来的查询表,这时候的查询,需要使用react的生命周期:componentDidUpdate componentDidUpdate() 这个生命周期的作用是当prop ...

  2. React的生命周期

    我们先来看一张图,其实看完这张图基本就懂了,如果还不懂,请继续往下看. getDefaultProps 执行过一次后,被创建的类会有缓存,映射的值会存在this.props,前提是这个prop不是父组 ...

  3. 附实例!图解React的生命周期及执行顺序

    本文由云+社区发表 作者:前端林子 1.七个可选的生命周期 可以结合下图来看: (1) componentWillMount() 仅在render()方法前被调用一次,如果在该方法中调用了setSta ...

  4. React组件生命周期小结

    React组件生命周期小结 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函 ...

  5. React—组件生命周期详解

    React—组件生命周期详解 转自 明明的博客  http://blog.csdn.net/slandove/article/details/50748473 (非原创) 版权声明:转载请注明出处,欢 ...

  6. React 函数生命周期

      React 函数生命周期基础 1 ,概念 在组件创建.到加载到页面上运行.以及组件被销毁的过程中,总是伴随着各种各样的事件,这些在组件特定时期,触发的事件,统称为组件的生命周期:* 2,组件生命周 ...

  7. 帮你理清React的生命周期

    这是一个从印记中文 | react官方文档提取总结的,算是帮自己理清并且强化记忆React的生命周期,以便以后编写组件的时候能够有更清晰的思路.本文如有纰漏,欢迎指正 整体上来讲,React生命周期分 ...

  8. 七天接手react项目 —— 生命周期&受控和非受控组件&Dom 元素&Diffing 算法

    生命周期&受控和非受控组件&Dom 元素&Diffing 算法 生命周期 首先回忆一下 vue 中的生命周期: vue 对外提供了生命周期的钩子函数,允许我们在 vue 的各个 ...

  9. 野心勃勃的React组件生命周期

    当你还在写着Angular指令,过滤器,注入,服务,提供者,视图模版的时候,是不是觉得很烦,好在这个时候,React已经神一样的出现在历史舞台. React组件    React实现了UI=Fn(St ...

随机推荐

  1. 模板, 保存&发布

    单击“视图”菜单中的“幻灯片模板”按钮,会弹出“幻灯片母版”选项卡,在此选项卡中,可以修改当前PPT的模板, 例如网上下载的幻灯片上的LOGO都可在这里去除. 模板设计总结 1. 背景可以选择纯色,也 ...

  2. 转载——githup的提交

    Github是管理软件开发的首选托管网站,12306的火车票插件一时让国内当时很多小白开发者(当然也包括我)认识到了这个网站.GitHub可以托管各种git库,并提供一个web界面,与 SourceF ...

  3. 安装psycopg2时出错:Error: pg_config executable not found.

    红帽系: 安装postgresql-devel Debian系: 安装libpq-dev

  4. Oracle清理回收站的方法

    原文链接:http://blog.itpub.net/18841027/viewspace-1057765/ purge DBA_RECYCLEBIN用于删除Oracle数据库回收站的所有数据,需要s ...

  5. Writing DynamicTableEntity to Azure Storage Table

    There are ample of samples available to show how to insert an object/entity to Azure Storage Table. ...

  6. 8 -- 深入使用Spring -- 6...1 Spring支持的事务策略

    8.6.1 Spring支持的事务策略 JTA.JDBC.Hibernate Java EE应用的传统事务有两种策略:全局事务和局部事务.全局事务由应用服务器管理,需要底层服务器的JTA(Java T ...

  7. 查询Array中确定数值的对象&JS linq使用 = linq.js

    var x=new Array(); x.push({"a":3,"b":3},{"a":2,"b":2},{" ...

  8. sklearn参数优化方法

    学习器模型中一般有两个参数:一类参数可以从数据中学习估计得到,还有一类参数无法从数据中估计,只能靠人的经验进行指定,后一类参数就叫超参数 比如,支持向量机里的C,Kernel,gama,朴素贝叶斯里的 ...

  9. 十一、K3 WISE 开发插件《VB插件开发如何代码调试 - 步骤讲解》

    =================================== 目录: 1.配置代码调试启动程序kdmain.exe 2.设置断点 3.触发调试 4.变量跟踪 ================ ...

  10. nginx+tomcat 下POST响应参数过大无法显示完整及文件下载服务遇到过大文件无法下载解决办法

    在nginx里location里面设置 proxy_buffering off; 或者 proxy_buffering on; proxy_buffers 4 4k; proxy_busy_buffe ...