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

追根溯源: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. Java知多少(77)日期和时间类

    Java 的日期和时间类位于 java.util 包中.利用日期时间类提供的方法,可以获取当前的日期和时间,创建日期和时间参数,计算和比较时间. Date 类 Date 类是 Java 中的日期时间类 ...

  2. Java------------JVM(Java虚拟机)优化大全和案例实战

    JVM(Java虚拟机)优化大全和案例实战 堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Ge ...

  3. 上网爱快?EasyRadius FOR 爱快V2接口测试版正式推出,欢迎广大爱迷们测试噢

    …… …… 有些人问:为什么上面要打省略号?那些因为此处省略无数字,但是我还是要和大伙们谈谈EasyRadius支持爱快的故事 早在2013年的时候,我们内部就有发布爱快接口,但是由于当时V1的爱快, ...

  4. Springboot学习笔记(三)-常用注入组件方式

    包扫描@ComponentScan+组件标注注解(@Controller.@Service.@Repository.@Component) 包扫描不是必须的,指定包名后以指定的包名为准,比如指定包名为 ...

  5. [AWS] Amazon Cognito

    看懂 [AWS] User management and [AWS] OAuth2.0 才方便看到此篇. Ref: 常见 Amazon Cognito 场景 Amazon Cognito 的两个主要组 ...

  6. php链式操作的实现

    );//$db->where("id=1");//$db->where("name=2");//$db->order("id des ...

  7. 配置数据源的三种方式和sql心跳的配置

    三种方式配置数据源连接池: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  8. 依赖注入容器之Castle Windsor

    一.Windsor的使用 Windsor的作为依赖注入的容器的一种,使用起来比较方便,我们直接在Nuget中添加Castle Windsor,将会自动引入Castle.Core 和 Castle.Wi ...

  9. 体验 ASP.NET Core 集成测试三剑客:xUnit.net、TestServer、EF Core InMemory

    这是昨天解决的一个问题,针对一个 web api 的客户端代理类写集成测试,既要测试 web api,又要测试 web api 客户端. 测试 web api,就要在运行测试时自动启动 web api ...

  10. [No000014E]提问的智慧How To Ask Questions The Smart Way

    原文版本历史 目录 声明 简介 在提问之前 当你提问时 慎选提问的论坛 Stack Overflow 网站和 IRC 论坛 第二步,使用项目邮件列表 使用有意义且描述明确的标题 使问题容易回复 用清晰 ...