老生常谈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静态的动态
Sep 18 Javascript
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
Sep 03 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
Vue源码解析之数据响应系统的使用
Apr 24 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 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
PHP调用三种数据库的方法(2)
2006/10/09 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python模拟表单提交登录图书馆
2018/04/27 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
校园自助餐厅的创业计划书
2013/12/26 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2015年预算员工作总结
2015/05/14 职场文书
婚育证明样本
2015/06/16 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS