生命周期mount:

mounting装载创建

update更新

unmounting卸载

错误捕获

注意点:生命周期函数的 作用,什么之后用

    只有类式组件有生命周期,函数式组件没有生命周期

mounting装载创建:——

  Construct——只执行一次

    作用:初始化实例

  static getDerivedStateFromProps(prop,state)  

    有返回值,当返回值为null时,state不变;有值时,将返回对象中的属性和state的属性对应,并将state做相应修改;
    作用:在render之前,可以改变state的机会,不改变,返回null

static getDerivedStateFromProps(props,state){
return null;
}

  Render
    作用:生产新的虚拟DOM

  componentDidUpdate(p,s,shot)——只执行一次
    作用:虚拟DOM变成真实的DOM,可以在页面看到视图,组件创建完成

    用处:可以获取真实的DOM节点

componentDidMount(){
console.log(document.getElementById('root'))
}

update更新:——

  static getDerivedStateFromProps(prop,state)
    用处:父组件更新,(已挂载)子组件页更新,在子组件中更新state*****

    父组件修改,因为state只在constructor的时候赋值,所以组件更新的时候,子组件的state是不修改的,可以通过这个静态函数修改state

static getDerivedStateFromProps(props,state){
return {
number: props.number
}
}

  shouldComponentUpdate(nextProps,nextState)
    作用:用于优化性能。如果是false就不需要走render,不用去重新计算

    用处:返回bool,true——组件正常更新流程;false——后面的生命周期函数不会执行,界面不更新

  Render
    作用:

  getSnapshotBeforeUpdate(prevProp,prevState)

    必须有返回值,返回值不能为空;这个方法必须和componentDidUpdate一起使用。
    作用:获取更新之前的快照,浏览器DOM结构还没有更新

    用处:动画,浏览器大小,布局变化,元素宽高,位置。和原来的比较。之前滚动条的位置

  componentDidUpdate(p,s,shot)
    作用:更新完成之后,可以获取DOM,获取宽高

unmounting卸载:——

  componentWillUnmount()——只执行一次
    作用:

错误捕获:

  compinentDidCatch(error,info)
    作用:子组件生命周期出错,回退

流程图:

react基础学习 二——生命周期的更多相关文章

  1. react学习二 生命周期

    转自:https://www.cnblogs.com/gdsblog/p/7348375.html react 中compent getDefaultProps object getDefaultPr ...

  2. 【RN - 基础】之React Native组件的生命周期

    下图描述了React Native中组件的生命周期: 从上图中可以看到,React Native组件的生命周期可以分为初始化阶段.存在阶段和销毁阶段. 实例化阶段 实例化阶段是React Native ...

  3. 《React Native 精解与实战》书籍连载「React Native 中的生命周期」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  4. react native组件的生命周期

    react native组件的生命周期 一.当页面第一次加载时,会依次调用: constructor() componentWillMount(): 这个函数调用时机是在组件创建,并初始化了状态之后, ...

  5. Android React Native组件的生命周期及回调函数

    熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期.今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android开 ...

  6. reactjs入门到实战(七)---- React的组件的生命周期

    React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他     getInitia ...

  7. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  8. react基础用法二(组件渲染)

    react基础用法二(组件渲染) 如图所示组件可以是函数 格式:function 方法名(){ return <标签>内容</标签>} 渲染格式: <方法名 />  ...

  9. React Native 中 component 生命周期

    React Native 中 component 生命周期 转自 csdn 子墨博客  http://blog.csdn.net/ElinaVampire/article/details/518136 ...

随机推荐

  1. 浅谈session和cookie

    含义: session(会话):指用户登录网站后的一系列动作,比如浏览商品添加到购物车并购买 cookie:用户身份的一种标识 区别: 1.Cookie通过在客户端记录信息确定用户身份,Session ...

  2. adb+monkey压力测试入门

    一.ADB安装步骤及ADB环境配置 1.ADB安装步骤 1)adb工具安装地址:http://www.wmzhe.com/soft-39913.html 2)下载安装包后,解压,将adb安装在根目录下 ...

  3. loadrunner---Android、iOS压力测试

    链接来源:http://www.cnblogs.com/ydnice/p/5790848.html 一.LoadRunner简介 LoadRunner,是惠普公司研发的一款预测系统行为和性能的负载测试 ...

  4. flume实现kafka到hdfs测试用例

    kafka 到hdfs at1.sources =st1 at1.channels = ct1 at1.sinks = kt1 # For each one of the sources, the t ...

  5. 利用位运算进行a+b的计算(Java&&Python)

    题目链接 需要用到的位运算操作:异或(^).与(&).右移(<<) 异或运算:又称不进位加法,a^b得到的结果为a与b相加,但是需要进位的地方不进位得到的结果 与运算:找出来a和b ...

  6. 对spring框架的理解

    spring框架的两大核心理念就是IOC和AOP,在面试的时候经常会被问到你对spring的理解.下面大致的说一下我对spring的理解. 一.IoC 1.1.什么是IoC 众所周知,IoC就是控制反 ...

  7. 学习笔记TF057:TensorFlow MNIST,卷积神经网络、循环神经网络、无监督学习

    MNIST 卷积神经网络.https://github.com/nlintz/TensorFlow-Tutorials/blob/master/05_convolutional_net.py .Ten ...

  8. 安装Visual Studio 语言包时出现windows 程序兼容模式已打开.请将其关闭

    打开 cmd.exe 输入 安装包路径 /Uninstall例如:D:\vs_lang_cn.exe /Uninstall (中间有个空格,Uninstall前是个左斜杠)回车 后 安装包会运行.点击 ...

  9. VS2015 加快编译速度

    在使用VS2015 编译的时候,每次修改工程中的某一个文件,启动调试时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译.最烦人的时候是当编译完 ...

  10. css格式

    <head> <style>body {color:#000000;font-weight:normal;} .c1{ color: #fff; background-colo ...