RN生命周期
网上看的博客,看着写的很好,想深入学RN的详细看下之后,再自己敲敲吧!有助于身体健康!
一个RN组件从它被加载,到最终被卸载会经历一个完整的生命周期。所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键。
ES6语法和之前的ES5语法有所变化,本文是根据ES6语法写的。
在ES5语法中,有getDefaultPropTypes这个函数,这个函数在组件被创建的时候调用一次,它的返回值成为了this.props的初始值
在ES6语法中,属性的类型和默认值声明不像ES5语法那样在组件定义内部声明,而是在组件定义的外部声明,所以生命周期函数没有了getDefaultPropsType了,但是声明DefaultPropTypes也是在组件创建的时候调用一次
constructor 构造函数
这个函数会在组件创建的时候调用一次。这个方法中可以通过this.state初始化状态机(ES5是通过getInitialState方法初始化的)。一般还在该方法中进行方法的bind(this)操作
componentWIllMount
在React Native组件的生命周期中,这个函数只会被执行一次。它在初始渲染(render)前被执行,当它执行完后,render函数会马上被react native框架调用执行.
如果在这个函数中通过setState函数修改状态变量,RN框架不会额外执行渲染
如果子组件也有componentWillMount函数,会在父组件之后调用
如果需要从本地存储中读取数据用于显示,这个函数是一个不错的选择
componentDidMount
在react native组件的生命周期中,这个函数只会被执行一次,它在初始渲染完成后会马上被调用.在这之后可以通过子组件的引用来访问,操作任何子组件.
如果RN组件的子组件也有componentDidMount函数,并会在父组件的componentDidMount函数之前被调用.
一般情况在这个方法中请求网络是一个不错的选择!
componentWillReceiveProps
这个函数的原型是:
componentWillReceiveProps(object nextProps)
在RN组件的初始渲染完成之后,当RN组件接收到新的props时,这个函数将被调用.参数就是新的props.
再次强调下,初次渲染不会调用该方法,是故意设计这种机制的
如果新的props会导致界面重新渲染,这个函数将在渲染前执行.如果函数中修改状态,框架不会立刻执行状态机改变的渲染而是等函数执行完之后一起渲染.
shouldComponentUpdate
这个函数的原型是:
boolean shouldComponentUpdate(obj nextProps,obj nextState)
RN组件的初始化渲染执行完成后,RN组件接收到新的state或者props时这个函数会调用.
函数返回一个布尔值,告诉RN组件是否重新渲染,如果false,不会渲染,相应的下面两个方法componentWIllUpdate和componentDidUpdate不会被调用.
通过这个函数阻止无必要的重新渲染,是提高RN应用程序性能的一大技巧.
componentWillUpdate
这个函数的原型是:
componentWillUpdate(obj nextProps,obj nextState)
初始渲染完成之后,重新渲染前会调用这个函数.但是这个函数不能通过this.setSatte再次改变状态机变量的值
componentDidUpdate
这个函数的原型是:
componentDidUpdate(obj nextProps,obj nextState)
RN组件初始完成之后,RN框架在重新渲染RN组件完成之后调用,参数是渲染前的props和state
componentWillUnMount
这个函数的原型是:
componentWillUnMount()
RN组件卸载前,这个函数被执行
RN生命周期的更多相关文章
- ReactNative——UI2.组件生命周期
对于习惯了iOS开发的同学,可能会对React Native中组件的生命周期很困惑.在iOS中有一个ViewDidLoad来初始化,那么在RN中,又是在哪里呢? 一.看图分析 在下图中描述了React ...
- 【RN - 基础】之React Native组件的生命周期
下图描述了React Native中组件的生命周期: 从上图中可以看到,React Native组件的生命周期可以分为初始化阶段.存在阶段和销毁阶段. 实例化阶段 实例化阶段是React Native ...
- React Native 中组件的生命周期
概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命 ...
- Asp.Net生命周期系列五
如果您看了我的前四篇文章,应该知道目前Http请求已经流到了HttpModule这个程序员手中了,而且我们可以注册自己的HttpModule并且可以在里面注册一些事件来控制这个Http请求,但是到目前 ...
- 从零学习Fluter(三):Flutter的路由跳转以及state的生命周期
今天继续研究Flutter,我是在flutter1.0发布后,才玩flutter的,发现在此之前,许多人已经先发制人,玩起了flutter,不知不觉中,我已经被别人摔在了起跑线上,玩过flutter后 ...
- react native环境搭建与生命周期
1.搭建开发环境 英文文档:http://facebook.github.io/react-native/docs/getting-started.html 中文文档:https://reactnat ...
- React Component Lifecycle(生命周期)
生命周期 所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键.RN 组件的生命周期整理如下图: 如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一 ...
- java多线程(2)---生命周期、线程通讯
java生命周期.线程通讯 一.生命周期 有关线程生命周期就要看下面这张图,围绕这张图讲解它的方法的含义,和不同方法间的区别. 1.yield()方法 yield()让当前正在运行的线程回到就绪 ...
- 《React Native 精解与实战》书籍连载「React Native 中的生命周期」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
随机推荐
- linux用户权限 -> 系统用户管理
用户基本概述: Linux用户属于多用户操作系统,在windows中,可以创建多个用户,但不允许同一时间多个用户进行系统登陆,但是Linux可以同时支持多个用户同时登陆操作系统,登陆后互相之间并不影响 ...
- 一张图教会CSS3倒影
分享 示例图片 在CSS3之前,想要实现示例图片这样的一个倒影效果一般只能通过处理图片的方式,而CSS3问世之后,想要实现这样的效果变得非常简单,只需一个CSS3属性就可以轻松实现了. 这就是今天所要 ...
- 一、springboot入门
构建spring boot工程一般采用两种方式 gradle .maven maven方式 pom.xml spring-boot-starter:核心模块,包括自动配置支持.日志和YAML spri ...
- 31 Godoc: documenting Go code 编写良好的文档关于godoc
Godoc: documenting Go code 编写良好的文档关于godoc 31 March 2011 The Go project takes documentation seriousl ...
- Linux下实现ping功能
实现ping功能,就肯定要用到ping命令,那么在Linux下ping命令为: ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面&g ...
- HDU 3374 String Problem(KMP+最大(最小)表示)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374 题目大意:给出一个字符串,依次左移一个单位形成一堆字符串,求其字典序最小和最大的字符串需要左移多 ...
- Java事务管理之JDBC
前言 关于Java中JDBC的一些使用可以参见: Java 中使用JDBC连接数据库例程与注意事项 在使用JDBC的使用, 如何进行事务的管理.直接看一下代码 示例代码 /** * @Title: J ...
- 开源框架:SDWebImage
http://blog.csdn.net/uxyheaven/article/details/7909373 SDWebImage是我搞iOS以来少数佩服的框架,膜拜一下作者.真的写的非常棒! 这套开 ...
- 配置JDK-Java运行环境
1.将Java安装包上传到服务器某目录,如E:\jdk-7u45-windows-x64.exe 2.上传后运行jdk-7u45-windows-x64.exe 3.点击[下一步],后选择[更改],改 ...
- 认识loadrunner及相关性能参数
认识loadrunner及相关性能参数 LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整 ...