老生常谈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 相关文章推荐
JS查看对象功能代码
Apr 25 Javascript
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
网页打开自动最大化的js代码
Aug 22 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
js中复选框的取值及赋值示例详解
Oct 18 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中hashtable实现示例分享
2014/02/13 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
json简单介绍
2008/06/10 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
初学python数组的处理代码
2011/01/04 Python
python socket 超时设置 errno 10054
2014/07/01 Python
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Python实现疫情地图可视化
2021/02/05 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
员工培训心得体会
2013/12/30 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
公司任命书范本
2014/06/04 职场文书
食品工程专业求职信
2014/06/15 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
大学生心理活动总结
2014/07/04 职场文书
服务明星事迹材料
2014/12/29 职场文书
医院合作意向书范本
2015/05/08 职场文书
小学教研工作总结2015
2015/05/13 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
Java8中接口的新特性使用指南
2021/11/01 Java/Android