React_生命周期

- 初始化 ReactDOM.render(jsx, 原生 DOM 对象):
组件类定义
static defaultProps = {}
static propTypes = {}
constructor(props){...}
componentWillMount() // 只执行一次,初始化数据
render() // 第一次调用,渲染界面
componentDidMount() // 只执行一次,执行异步代码
- 更新 this.setState({...}):
componentWillUpdate()
render() // 每当状态机的数据改变都会自动调用
componentDidUpdate()
- 死亡 ReactDOM.unmountComponentAtNode():
componentWillUnmount() // 将要卸载组件之前
一个对象从生到死的过程
- Mounting :已插入真实 DOM
- Updating :正在被重新渲染
- Unmounting :已移出真实 DOM
- getInitialState() --------已经废弃了!!!
用于初始化组件状态
在组件挂载之前调用一次。返回值将会作为 this.state的初始值
- getDefaultProps -------- 好像也废弃了。
用于设置组件的 state 中 属性的默认值
在组件类创建的时候调用一次,然后返回值被缓存下来。
如果父组件没有指定 props 中的某个键,则此处返回的对象中的相应属性将会合并到 this.props (使用 in 检测属性)
getDefaultProps() {
return {
title: '',
popEnabled:true
};
},- propTypes
验证传入到组件的 props
- isMounted()
当组件被渲染到 DOM,该方法返回 true,否则返回 false
该方法通常用于异步任务完成后修改 state 前的检查,以避免修改一个没有被渲染的组件的 state
- 什么时候调用 render()
- 初始显示第一次调用
- 一旦钓鱼用 this.setState() 更新了状态
当该方法被回调的时候,会检测 this.props 和 this.state,并返回一个单子级组件。
该子级组件可以是虚拟的本地 DOM 组件
也可以返回 null 或者 false 来表明不需要渲染任何东西: 此时 this.getDOMNode() 将返回 null
- 生命周期回调函数 (钩子)
在整个生命过程中某个特定时刻会自动调用相应的回调函数 (来通知你)
- 通过重写 以下方法,初始化
第一次 render() 之前,执行一次
componentWillMount() // 一般在此 准备数据
第一次 render() 之后,执行一次
componentDidMount() // 执行异步代码 (定时器)
重写以下方法,在组件移除之前,清除定时器
componentWillUnmount()
- 卸载一个节点的 react 组件实例
ReactDOM.unmountComponentAtNode(document.getElementById(""));
React_生命周期的更多相关文章
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- UIViewController生命周期-完整版
一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load (NSObje ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- Spring中Bean的作用域、生命周期
Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...
- Autofac - 生命周期
实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...
随机推荐
- 我对SAP Business One 项目实施的理解
一.什么是SAP: 大家都知道ERP是什么,ERP是企业资源计划管理系统.是指建立在信息技术基础上,集信息技术与先进管理思想于一身,以系统化的管理思想,为企业员工及决策层提供决策手段的管理平台.那么问 ...
- Filebeat+ELK部署文档
在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的Filebeat+ELK开源实时日志分析平台的记录过程,有不对的地方还望指出. 简单介绍: 日志主要包括系统日志.应用 ...
- jpa返回List<Map<String, Object>>相当于jdbctemplate的queryForlist
public class Test(){ @PersistenceContext(unitName = "manageFactory") protected EntityManag ...
- Linux动态库生成与使用指南
相关阅读: Linux静态库生成指南 Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件. 在链接动态库生成可执行文件时,并不 ...
- Jquery+php 动态web表单增删改查
如这类效果: 例一:简单 <html> <head> <meta http-equiv="content-type" content="te ...
- Django小技巧——使用package管理app
在一个学习视频上看见的小技巧,遂记录下来. 1. 如下图所示,项目中有多个app,本技巧要解决的问题是集中管理这多个app,将其放入一个package下集中管理,改善项目的视图环境 2. 建立一个pa ...
- Python3:关于列表的操作(合并、拼接,嵌套排序··)
一:# 将2个列表合并成字典,按最少个数key=['winnie','anna','lisa']value=[18,20,22] k_v=dict(zip(key,value))print(k_v) ...
- [转] fastText
mark- from : https://www.jiqizhixin.com/articles/2018-06-05-3 fastText的起源 fastText是FAIR(Facebook AIR ...
- 题解-CodeChef IOPC14L Sweets Problem
Problem CodeChef-IOPC14L 题目概要:给定 \(n\) 种糖果且给定每种糖果的数量 \(A_i\),\(Q\) 组询问,每次问选出 \(S\) 个糖果的方案数(模\(10^9+7 ...
- wx获取地理位置
1.公众号配置. 2.引入js 一个放在根目录下的txt文件. 3.1)第一个ajax为获取后台传给的wx.config需要的参数:wx.ready().通过ready接口处理成功验证.然后才是wx. ...