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

追根溯源: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指纹识别+谷歌图片识别技术_源代码

    主类: import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; public c ...

  2. tcp 三次握手 转

    转载 记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下 ...

  3. [JavaScript] 配置JavaScript BUILD

    <project name="eForm" default="concatenate"> <tstamp> <format pro ...

  4. url自动补全index.php

    location / { index index.html index.htm index.php l.php; autoindex on; if (!-e $request_filename) { ...

  5. MongoDB数据库连接失败

    win10下原来一直在用的MongoDB突然连接不上了,报错如下: 解决方法是:net start MongoDB重启服务

  6. Android必学-异步加载+Android自定义View源码【申明:来源于网络】

    Android必学-异步加载+Android自定义View源码[申明:来源于网络] 异步加载地址:http://download.csdn.net/detail/u013792369/8867609 ...

  7. day11 十一、函数对象,名称空间,作用域,和闭包

    一.函数对象 1.函数对象:函数名存放的就是函数的地址,所以函数名也是对象,称之为函数对象 a = 10 print(a,id(a)) def fn(): num = 10 print('fn fuc ...

  8. 用C# 7.0的switch...case模式匹配取代一堆if语句

    今天在重构代码时对下面的一堆if语句实在看着不顺眼. if(activation == null) { _logger.LogError("x1"); return Boolean ...

  9. python的代码缩进和冒号

    一般语言一样采用{}或者begin...end分隔代码块,而是python中,采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严 ...

  10. leetcode第三题

    leetcode第三题: 题目: 给定一个字符串,找出不含有重复字符的最长子串的长度. 源码(使用java语言): class Solution { public int lengthOfLonges ...