老生常谈js-react组件生命周期


Posted in Javascript onMay 02, 2017

组件的生命周期可分成三个状态:

•Mounting:已插入真实 DOM
•Updating:正在被重新渲染
•Unmounting:已移出真实 DOM

生命周期的方法有:

•componentWillMount 在渲染前调用,在客户端也在服务端。

•componentDidMount : 在第一次渲染后调用,只在客户端。之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问。 如果你想和其他JavaScript框架一起使用,可以在这个方法中调用setTimeout, setInterval或者发送AJAX请求等操作(防止异部操作阻塞UI)。

•componentWillReceiveProps 在组件接收到一个新的prop时被调用。这个方法在初始化render时不会被调用。

•shouldComponentUpdate 返回一个布尔值。在组件接收到新的props或者state时被调用。在初始化时或者使用forceUpdate时不被调用。

可以在你确认不需要更新组件时使用。

•componentWillUpdate在组件接收到新的props或者state但还没有render时被调用。在初始化时不会被调用。

•componentDidUpdate 在组件完成更新后立即调用。在初始化时不会被调用。

•componentWillUnmount在组件从 DOM 中移除的时候立刻被调用。

(DVA)定义组件一般有三种方式:

// 1. 传统写法
const App = React.createClass({});

// 2. es6 的写法
class App extends React.Component({});

// 3. stateless 的写法(我们推荐的写法)
const App = (props) => ({});

其中第1种是我们(DVA)不推荐的写法,第2种是在你的组件涉及 react 的生命周期方法的时候采用这种写法,而第3种则是我们一般推荐的写法。

以上这篇老生常谈js-react组件生命周期就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
Feb 03 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
iscroll实现下拉刷新功能
Jul 18 Javascript
详解微信JS-SDK选择图片遇到的坑
Aug 15 Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
js 用于检测类数组对象的函数方法
May 02 #Javascript
使用Bootstrap打造特色进度条效果
May 02 #Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 #Javascript
js实现字符全排列算法的简单方法
May 01 #Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 #Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 #jQuery
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 #Javascript
You might like
header跳转和include包含问题详解
2012/09/08 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
Python中将dataframe转换为字典的实例
2018/04/13 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Python telnet登陆功能实现代码
2020/04/16 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
如何实现一个自定义类的序列化
2012/05/22 面试题
安全检查与奖惩制度
2014/01/23 职场文书
五分钟演讲稿
2014/04/30 职场文书
关于旅游的活动方案
2014/08/15 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
关于童年的读书笔记
2015/06/26 职场文书
教你用python控制安卓手机
2021/05/13 Python
数据库之SQL技巧整理案例
2021/07/07 SQL Server
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android