React之生命周期
哈喽,这是我的第一篇博客,请大家多多关照~
追根溯源: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之生命周期的更多相关文章
- react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新
场景:数据新增成功之后,需要返回原来的查询表,这时候的查询,需要使用react的生命周期:componentDidUpdate componentDidUpdate() 这个生命周期的作用是当prop ...
- React的生命周期
我们先来看一张图,其实看完这张图基本就懂了,如果还不懂,请继续往下看. getDefaultProps 执行过一次后,被创建的类会有缓存,映射的值会存在this.props,前提是这个prop不是父组 ...
- 附实例!图解React的生命周期及执行顺序
本文由云+社区发表 作者:前端林子 1.七个可选的生命周期 可以结合下图来看: (1) componentWillMount() 仅在render()方法前被调用一次,如果在该方法中调用了setSta ...
- React组件生命周期小结
React组件生命周期小结 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函 ...
- React—组件生命周期详解
React—组件生命周期详解 转自 明明的博客 http://blog.csdn.net/slandove/article/details/50748473 (非原创) 版权声明:转载请注明出处,欢 ...
- React 函数生命周期
React 函数生命周期基础 1 ,概念 在组件创建.到加载到页面上运行.以及组件被销毁的过程中,总是伴随着各种各样的事件,这些在组件特定时期,触发的事件,统称为组件的生命周期:* 2,组件生命周 ...
- 帮你理清React的生命周期
这是一个从印记中文 | react官方文档提取总结的,算是帮自己理清并且强化记忆React的生命周期,以便以后编写组件的时候能够有更清晰的思路.本文如有纰漏,欢迎指正 整体上来讲,React生命周期分 ...
- 七天接手react项目 —— 生命周期&受控和非受控组件&Dom 元素&Diffing 算法
生命周期&受控和非受控组件&Dom 元素&Diffing 算法 生命周期 首先回忆一下 vue 中的生命周期: vue 对外提供了生命周期的钩子函数,允许我们在 vue 的各个 ...
- 野心勃勃的React组件生命周期
当你还在写着Angular指令,过滤器,注入,服务,提供者,视图模版的时候,是不是觉得很烦,好在这个时候,React已经神一样的出现在历史舞台. React组件 React实现了UI=Fn(St ...
随机推荐
- 短信文本查找之 MATCH 与 LIKE
最近发现原生短信应用的搜索功能的搜索结果十分不准确,所以就开始追踪代码: 关于android searchview的使用这里就不描述了,简单说一下,android的searchVIew是支持autoc ...
- 记一个神奇的WAS问题:sibuswsgw-sibuswsgw_console.jar invalid LOC header (bad signature) 分类: WebSphere 2015-08-06 23:21 9人阅读 评论(0) 收藏
今天晚上,出现了一个神奇的WAS问题,详细问题异常信息如下: [15-8-6 22:13:29:146 CST] 00000013 ApplicationMg A WSVR0203I: 应用程序:is ...
- Php实现版本比较接口
版本号格式: A.B.C, 字符串形式 <?php // 强更版本, 客户端版本 $f = '5.8.5'; $c = '5.8.4'; // 字符串分割并转换成整数数组 function Sp ...
- android 手机 多分辨率适配
近来在做android屏幕适配这方面的工作, 今天总算有点眉目. 小记一下 基础知识就不科普了, 网上一大堆. 作为一个刚接触这方面人, 最先进入我脑子的, 是从小到大的各种屏, 小到手表, 大到街 ...
- cordova 企业应用打包Archive的时候报 "#import <Cordova file not found"
可能原因是Cordova的路径问题: For xcode7 add "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" ...
- D - Lake Counting
Due to recent rains, water has pooled in various places in Farmer John's field, which is represented ...
- php foreach
工作半年了我一直以来至知道这样用,foreach($aa as $k=>$r){} 尔今天师父已教我还可以这样用: foreach($aa as $r){}
- 排查 docker flow proxy 的 503 问题
这是今天我们在开发环境下 docker swarm 集群上遇到的问题,在这篇博文中记录一下排查过程. 先登录到应用容器内检查一下其中运行的站点是否能正常访问: # docker exec -it 02 ...
- ubuntu下能ping通ssh不通的解决思路
1.首先看看是否能ping通,如果ping不通可能就要考虑网线.路由等问题了: 2.看防火墙是否关闭,sshd是否开启 3.ssh -v 服务器的ip号,根据提示寻找可能的问题: 我的问题在这一步之后 ...
- 在Ubuntu环境下安装eclipse
Eclipse运行需要Java环境,java环境的安装见https://www.cnblogs.com/Sabre/p/10349320.html,本文不再赘述. 1.下载eclipse eclips ...