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的“生命”是掌握在系统手上的, ...
随机推荐
- 解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
1.选择iis根节点,点击ARR 2.选择代理设置 3.去掉reverse rewrite host in response headers的勾选,点击应用即可
- C#使用ServiceStack读写Redis
通过C#第三方库向Redis存储数据遇到的几个问题 https://github.com/ServiceStack/ServiceStack.Redis 1.将对象转json字符串 JsonObjec ...
- [再寄小读者之数学篇](2014-06-22 求导数 [中国科学技术大学2014年高等数学B考研试题])
设 $f(x)=x^2\ln(x+1)$, 求 $f^{(n)}(0)$. 解答: 利用 Leibniz 公式易知 $f'(0)=f''(0)=0$, $f^{(n)}(0)=(-1)^{n-3} n ...
- Coursera, Big Data 3, Integration and Processing (week 5)
Week 5, Big Data Analytics using Spark Programing in Spark Spark Core: Programming in Spark us ...
- 报文段、协议、MAC地址
- Ansible------常用功能
local_action Ansible 默认只会对控制机器执行操作,但如果在这个过程中需要在 Ansible 本机执行操作就需要使用到local_action become:True Ansible ...
- 怎样给手机安装fiddler证书
如果需要抓取手机端的HTTPS包,就要在手机上面安装fiddler证书. 1.使用手机连接WiFi做好代理: 2.代理成功后打开手机浏览器: 3.在浏览器输入:http://IP地址:端口号后搜索(如 ...
- LeetCode第十一题-可以装最多水的容器
Container With Most Water 问题简介:通过一个给定数组,找出最大的矩形面积 问题详解:给定一个数组,包含n个非负整数a1,a2,…,an,其中每个表示坐标(i,ai)处的点,绘 ...
- Flutter终将逆袭!1.2版本发布,或将统一江湖
在去年 MWC 大展上发布首个 Beta 版后,Flutter 1.0 正式版于 2018 年 12 月召开的 Flutter Live 2018 上正式发布.今天在巴塞罗那召开的 MWC 发布会上, ...
- VMware虚拟机安装Linux后忘记root密码怎么办(三)
第一种方法如下: 1.Linux开机 按键盘e今日GRUB界面如下:(GRUB管理引导启动盘) 切换到原系统目录: chroot /sysroot/ 2.重新启动客户机 3.使用新密码登录成功! 第二 ...