当前位置: 首页 > news >正文

天津做网站制作厦门人才网官网招聘

天津做网站制作,厦门人才网官网招聘,工程管理毕业设计代做网站,wordpress设置版权前言 React16.4版本之后使用了新的生命周期,它使用了一些新的生命周期钩子(getDerivedStateFromProps、getSnapshotBeforeUpdate),并且即将废弃老版的3个生命周期钩子(componentWillMount、componentWillReceiveProps…

前言

React16.4版本之后使用了新的生命周期,它使用了一些新的生命周期钩子(getDerivedStateFromProps、getSnapshotBeforeUpdate),并且即将废弃老版的3个生命周期钩子(componentWillMount、componentWillReceiveProps、componentWillUpdate)。

生命周期修改的深层原因

因为React 16引入了Fiber机制,把同步的渲染流程进化为了异步的渲染流程,这么做的原因是同步渲染流程有个弊端:一旦开始就不能停下,大工作量的渲染任务执行时,主线程会被长时间的占用,浏览器无法即时响应与用户的交互。

Fiber机制会把渲染任务拆解为多个小任务,并且每执行完一个小任务,就把主线程的执行权交出去,也就解决了上面的弊端。

然而,采用Fiber机制进行渲染时,render阶段没有副作用,可以被暂停,终止或重新启动。就是这个重新启动,会导致工作在render阶段的componentWillMount、componentWillReceiveProps、componentWillUpdate存在重复执行的可能,所以它们几个必须被替换掉。

生命周期(旧)

react生命周期旧
挂载时
可以看出挂载时的更新数据顺序依次如下
1)constructor:构造器
2)componentWillMount:组件将要挂载
3)render:渲染
4)componentDidMount:组件挂载完成

父组件render
1)componentWillReceiveProps:组件将要接收属性
2)shouldComponentUpdate:组件是否应该更新
3)componentWillUpdate:组件将要更新
4)componentDidUpdate:组件完成更新

卸载时
componentWillUnmount:组件将要卸载时
组件卸载前调用的钩子函数,可以通过调用ReactDOM.unmountComponentAtNode函数检验

生命周期(新)

react生命周期新
挂载时
1)constructor:构造器
2)getDerivedStateFromProps:从属性中得到派生的状态
3)render:渲染
4)componentDidMount:组件完成挂载

更新时
1)getDerivedStateFromProps:从属性中得到派生的状态
2)getSnapshotBeforeUpdate:更新前得到快照
3)componentDidUpdate:组件完成更新

卸载时
componentWillUnmount:组件将要卸载时

新旧生命周期的对比

1)可以看出,新生命周期中去掉了三个will钩子函数,分别是componentWillMount、componentWillUpdate、componentWillReceiveProps

原因查官方文档可知:这些生命周期方法经常被误解和滥用;此外,我们预计,在异步渲染中,它们潜在的误用问题可能更大。我们将在即将发布的版本中为这些生命周期添加 “UNSAFE_” 前缀。(这里的 “unsafe” 不是指安全性,而是表示使用这些生命周期的代码在 React 的未来版本中更有可能出现 bug,尤其是在启用异步渲染之后。)

2)新生命周期中新增getDerivedStateFromProps、getSnapshotBeforeUpdate
新的静态 getDerivedStateFromProps 生命周期方法在组件实例化之后以及重新渲染之前调用。它可以返回一个对象来更新 state,或者返回 null 来表示新的 props 不需要任何 state 的更新。

新的 getSnapshotBeforeUpdate 生命周期方法在更新之前(如:更新 DOM 之前)被调用。此生命周期的返回值将作为第三个参数传递给 componentDidUpdate。(通常不需要,但在重新渲染过程中手动保留滚动位置等情况下非常有用。)

http://www.tj-hxxt.cn/news/17885.html

相关文章:

  • 做网站横幅 的网站推荐几个广告多的网站
  • 钓鱼网站下载安装北京seo收费
  • 北京市专业网站制作企业40个免费网站推广平台
  • 17网站一起做网店广绍兴seo排名
  • 为网站做安全认证服务优化设计六年级上册数学答案
  • 做期货要关注哪些网站代发软文
  • 沈阳做网站的公司排行个人网页怎么制作
  • 洛阳工程建设信息网站磁力天堂最佳搜索引擎入口
  • 主网站怎么做熊掌号优化网站的设计流程
  • 新疆建设兵团十四师网站是多少钱安康seo
  • 合肥哪里有做网站360指数在线查询
  • wordpress直播购物插件怎样优化网站关键词排名靠前
  • 成都疫情最新消息今天又封了北京seo收费
  • 建设工程招标公告在哪个网站企业营销推广策划
  • 自己做一款app需要多少钱最新seo新手教程
  • 网站怎么可以做视频播放微博推广平台
  • 免费ftp 网站站长之家统计
  • 北京服装网站建设地址凡科建站代理
  • 不同接入商备案网站站长seo工具
  • 网站底部连接怎么做发布新闻
  • 如何建立自己推广网站东莞seo排名优化
  • 廊坊做网站的企业哪家好不要手贱搜这15个关键词
  • 做淘宝客导购网站营销qq下载
  • 百润网站建设知乎seo优化
  • 找大学生做家教去哪个网站找好百度关键词优化技巧
  • 链接提交抖音seo搜索优化
  • 关于建设网站的需求百度信息流账户搭建
  • 设计的网站都有哪些内容何鹏seo
  • 上海专业网站建设维护东营网站推广公司
  • 六安门户网站建设哪家好电商引流推广方法