react基础学习 二——生命周期
生命周期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基础学习 二——生命周期的更多相关文章
- react学习二 生命周期
转自:https://www.cnblogs.com/gdsblog/p/7348375.html react 中compent getDefaultProps object getDefaultPr ...
- 【RN - 基础】之React Native组件的生命周期
下图描述了React Native中组件的生命周期: 从上图中可以看到,React Native组件的生命周期可以分为初始化阶段.存在阶段和销毁阶段. 实例化阶段 实例化阶段是React Native ...
- 《React Native 精解与实战》书籍连载「React Native 中的生命周期」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- react native组件的生命周期
react native组件的生命周期 一.当页面第一次加载时,会依次调用: constructor() componentWillMount(): 这个函数调用时机是在组件创建,并初始化了状态之后, ...
- Android React Native组件的生命周期及回调函数
熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期.今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android开 ...
- reactjs入门到实战(七)---- React的组件的生命周期
React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他 getInitia ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- react基础用法二(组件渲染)
react基础用法二(组件渲染) 如图所示组件可以是函数 格式:function 方法名(){ return <标签>内容</标签>} 渲染格式: <方法名 /> ...
- React Native 中 component 生命周期
React Native 中 component 生命周期 转自 csdn 子墨博客 http://blog.csdn.net/ElinaVampire/article/details/518136 ...
随机推荐
- CSS制作环形进度条
参考来源 <Radial progress indicator using CSS>,该文核心是用纯CSS来做一个环形的进度条.纯css的意思就是连百分比这种数字,都是css生成的.文章作 ...
- python 内置函数 进制转换
4.内置函数 自定义函数 内置函数 len Open id() type() range() 输入输出 print() input() 强制转换 int() float() list() tuple( ...
- Python学习笔记-chapter1
我自幼时自觉聪慧,但实缺恒力,遂二十余岁却一事无成,亦无一技傍身,实属惭愧. 少时便仰慕于新兴世界之IT技术,然因惰性,未曾一日习学. 今陷此困境,聊以度日,反无端生出些许时间,便志要潜心研学,不求能 ...
- hive 非等值连接, 设置hive为nonstrict模式
1 数据准备 create table stocks(id int, date string,price string, company string); insert into table stoc ...
- kylin cubing algorithm(算法)
看到这一块的视频,结合光方博客的一些文档及自己的一点理解,记个笔记,以备不时之需. by layer cubing 1.on MR 这个算法的对cube的计算就像它的名字一样是按player进行的. ...
- pycharm+pydesigner+pyqt5 如何添加图片资源
pydesigner 上添加资源比较容易: 步骤一用于编辑,步骤二步创建,步骤三创建文件新的qrc: 步骤一:新建一个Prefix,步骤二给prefix添加资源文件.至此,资源文件添加完成 采用 Py ...
- H5 实现图片上传预览
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- ios-时间换算
经常会遇到时间转换的,在此收藏一个时间换算的方法〜 #pragma mark 时间换算 + (NSString *)setcreateTime:(NSString *)str { //yyyy-MM- ...
- response响应
郭晨 软件151 1531610114 response1.response常用APIsetStatus:设置响应行当中的状态码setHeader:设置响应头信息getOutputStream:获得字 ...
- 现在企业开发时,Java所用到的主流框架有哪些?
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇.毫无疑问,Java是目前最热门的编程语言之一.随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到 ...