老生常谈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 相关文章推荐
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
Apr 01 Javascript
Jquery知识点二 jquery下对数组的操作
Jan 15 Javascript
JavaScript中的排序算法代码
Feb 22 Javascript
JS中表单的使用小结
Jan 11 Javascript
php的文件上传入门教程(实例讲解)
Apr 10 Javascript
利用Node.JS实现邮件发送功能
Oct 21 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
vue 实现全选全不选的示例代码
Mar 29 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
微信小程序自定义单项选择器样式
Jul 25 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
JS字符串和数组如何实现相互转化
Jul 02 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+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
Python中Random和Math模块学习笔记
2015/05/18 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
jupyter实现重新加载模块
2020/04/16 Python
python爬虫基础知识点整理
2020/06/02 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
社会实践活动总结报告
2014/04/29 职场文书
火灾现场处置方案
2014/05/28 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
运动会100米加油稿
2015/07/21 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
python中Matplotlib绘制直线的实例代码
2021/07/04 Python