生命周期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. Python:从入门到实践--第八章-函数-练习

    #.消息:编写一个名为display_message()的函数,它打印一个句子,指出你在本章学的是什么. #调用这个函数,确认显示的消息无误 def display_message(name): pr ...

  2. 创建数组必须指定数组数目之new运算符避免这种限制

    typeName arrayName[arraySize] short months[12]; 表达式arraySize指定元素数目,他必须是整型常数或const值,也可以是常量表达式,即其中所有的值 ...

  3. 关于html引用php文件在编译器正常运行,web浏览器出问题的一点心得

    首先上图 第一张图是预期效果,也就是编译器运行的效果,第二张则是在浏览器打开的效果.那么为甚么会出现这何种问题呢? 原来:编译器能正常运行 是因为是走的cli模式,而浏览器现在走的是web模式,php ...

  4. 作业二:构建swap函数

    一.swap代码 #include<stdio.h> int main() //主函数部分 { void swap(int *m,int *n); int a,b; int *p1,*p2 ...

  5. node.js同步读取与异步读取文件

  6. SDL播放YUV——循环

    #include "SDL.h" #include "as_lesson_log.h" #define PATH_YUV420 "/sdcard/ou ...

  7. Ubuntu-18.04.2-几个启动错误解决办法

    问题如图: 这里三个问题: 1. piix4_smbus: SMBus Host controller not enabled.(i2c_piix4模块所致,因为系统找不到这个模块,所以报错) 解决办 ...

  8. async await 同时发起多个异步请求的方法

    @action getBaseInfo = async() => { let baseInfo; try { baseInfo = await getBaseInfo(this.id); if ...

  9. SQL Server 快速大数据排序方法

    SQL Server 中虽然有 ORDER BY NewID() 方法,但对于数据量比较大的结果集来说,排序那慢的可不是一星半点. 微软官方给了一种方案,https://msdn.microsoft. ...

  10. maven无法下载oracle驱动包

    由于版权问题,在中央仓库是没有oracle的jdbc驱动的,可以手动下载到本地或者在oracle安装目录的jdbc目录中找到对应的jar,然后通过以下命令安装到本地仓库 mvn install:ins ...