React 函数生命周期
React 函数生命周期基础
1 ,概念
在组件创建、到加载到页面上运行、以及组件被销毁的过程中,总是伴随着各种各样的事件,这些在组件特定时期,触发的事件,统称为组件的生命周期;*
2,组件生命周期分为三部分
1,在组件创建阶段
组件创建阶段的生命周期函数,有一个显著的特点:创建阶段生命周期函数在组件的一辈子中,只执行一次;
2,组件运行阶段
也有一个显著的特点,根据组件的state和props的改变,有选择性的触发0次或多次;
3,组件销毁阶段
也有一个显著的特点,一辈子只执行一次;
在程序运行的过程中,会自动执行的函数,被称为生命周期函数
记住常用的生命周期方法:
加载期
constructor()
componentWillMount()
render()
componentDidMount()
更新期
componentWilUpdate()
render()
componentDidUpdate()
3,案例部分
import React, { Component } from 'react' export class Demo extends Component {
// 初始化数据
constructor(props){
super();
console.log('construtor....在这里初始化数据')
this.state = {
list:[],//从数据库获取的数据
num:0,
isStart:false
}
}
// 获取数据库数据
componentWillMount(){
console.log('componentWillMount....在这里使用Ajax获取数据');
}
// 向页面渲染数据
render() {
console.log('render....在这里生成DOM');
return (
<div>
<h3>数据展示:</h3>
<p>
<input type='checkbox' onChange={this.change.bind(this)} />
按钮是否可用
</p>
<button onClick={this.click.bind(this)}>更新数据</button>
<p>数据:{this.state.num}</p>
</div>
)
}
// 渲染后执行
componentDidMount(){
console.log('componentDidMount....向DOM中渲染数据');
} //复选框点击事件
change(e){
this.setState({
isStart:e.target.checked
})
} //按钮点击事件
click(){
console.log('更新数据....')
let i = this.state.num;
i++;
this.setState({
num:i
});
}
// 判断是否更新state数据
shouldComponentUpdate(){
return this.state.isStart;
} // 在组件接收到新的props或者state但还没有render时被调用
componentWillUpdate(){
console.log('componentWillUpdate....');
}
// 在组件完成更新后立即调用
componentDidUpdate(){
console.log('componentDidUpdate.....');
} } export default Demo
React 函数生命周期的更多相关文章
- React的生命周期
我们先来看一张图,其实看完这张图基本就懂了,如果还不懂,请继续往下看. getDefaultProps 执行过一次后,被创建的类会有缓存,映射的值会存在this.props,前提是这个prop不是父组 ...
- 附实例!图解React的生命周期及执行顺序
本文由云+社区发表 作者:前端林子 1.七个可选的生命周期 可以结合下图来看: (1) componentWillMount() 仅在render()方法前被调用一次,如果在该方法中调用了setSta ...
- React之生命周期
哈喽,这是我的第一篇博客,请大家多多关照~ 追根溯源:What's the lifeCycle? 生命周期函数指在某一时刻组件会自动调用执行的函数: React生命周期概览: 接下来我们就着生命周期的 ...
- React组件生命周期小结
React组件生命周期小结 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函 ...
- React—组件生命周期详解
React—组件生命周期详解 转自 明明的博客 http://blog.csdn.net/slandove/article/details/50748473 (非原创) 版权声明:转载请注明出处,欢 ...
- 帮你理清React的生命周期
这是一个从印记中文 | react官方文档提取总结的,算是帮自己理清并且强化记忆React的生命周期,以便以后编写组件的时候能够有更清晰的思路.本文如有纰漏,欢迎指正 整体上来讲,React生命周期分 ...
- 七天接手react项目 —— 生命周期&受控和非受控组件&Dom 元素&Diffing 算法
生命周期&受控和非受控组件&Dom 元素&Diffing 算法 生命周期 首先回忆一下 vue 中的生命周期: vue 对外提供了生命周期的钩子函数,允许我们在 vue 的各个 ...
- react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新
场景:数据新增成功之后,需要返回原来的查询表,这时候的查询,需要使用react的生命周期:componentDidUpdate componentDidUpdate() 这个生命周期的作用是当prop ...
- 野心勃勃的React组件生命周期
当你还在写着Angular指令,过滤器,注入,服务,提供者,视图模版的时候,是不是觉得很烦,好在这个时候,React已经神一样的出现在历史舞台. React组件 React实现了UI=Fn(St ...
随机推荐
- 20191107-4 beta week 2/2 Scrum立会报告+燃尽图 03
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9956 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶, ...
- 大数据(5)---分布式任务资源调度Yarn
前面也说到过的Yarn是hadoop体系中的资源调度平台.所以在整个hadoop的包里面自然也是有它的.这里我们就简单介绍下,并配置搭建yarn集群. 首先来说Yarn中有两大核心角色Resource ...
- 如何根据HttpServletRequets获取用户真实IP地址
最近的一个项目的某个功能获取用户的ip地址,添加用户的系统使用记录. 我发现当我直接使用getRemoteAddr()方法从HttpServletRequet中获取用户的ip时,获取到的是服务器的ip ...
- 1081 检查密码 (15分)C语言
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母.数字和小数点 .,还必须既有字母也有数字. 输入格式: 输入第一行 ...
- 1059 C语言竞赛 (20 分)C语言
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--). 1 ...
- 使用K均值算法进行图片压缩
K均值算法 上一期介绍了机器学习中的监督式学习,并用了离散回归与神经网络模型算法来解决手写数字的识别问题.今天我们介绍一种机器学习中的非监督式学习算法--K均值算法. 所谓非监督式学习,是一种 ...
- 18.Python模块包(pycharm右键创建文件夹和python package的区别)中__init__.py文件的作用
原来在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了.当 ...
- Ant Design Pro路由传值
Ant Design Pro 路由传值 了解Ant Design Pro组件间通讯原理的小伙伴肯定都知道,两个页面之间可以通过Models进行传值,在以往的传值过程中,我都是直接将需要的值直接一股脑的 ...
- 2019HDU多校第四场题解
1001.AND Minimum Spanning Tree 传送门:HDU6614 题意:给你一个又n个点的完全图,点编号从1~n,每条边的权值为被连接的两点编号按位与后的值.现在要你找到最小生成树 ...
- 【Java基础总结】网络编程
网络编程 InetAddress tcp udp