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

襄阳建设局网站建门户网站哪家最好

襄阳建设局网站,建门户网站哪家最好,wordpress做PHP,免费微信小程序模板前言 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.yayakq.cn/news/530481/

相关文章:

  • 新郑做网站优化中国建设银行网站开通短信
  • 广东网站备案需要多久湖州市南浔区建设局网站
  • 泸州网站建设手机企业网站
  • 新站网站推广公司中国招生代理网
  • 怎么做学校网站和微信公众号工程公司取名大全
  • 做网站之前需要准备什么条件合肥市工程建设云平台
  • 外贸网站源码哪个好网站建设需要自备什么
  • 网站建设开发软件网页制作与前端开发
  • 网站平台报价模板下载花钱做网站需要所有权
  • 做网站申请域名大概花费多少做直播哪个网站好
  • 营销式网站建设银行车主卡网上交罚款网站
  • 手机网站图片自适应代码欧美风网站建设
  • 网站经营深圳市宝安区核酸检测点
  • 公司网站制作应该注意些什么WordPress搭建點播流媒體
  • 淘客网站自己做如何自建网页
  • 做司法亲子鉴定网站国内做的比较好的协会网站
  • 深圳网站建设 设计贝尔wordpress查看内容插件
  • 游戏网站建设方案消耗品分类
  • 建设银行储蓄卡申请网站扶贫基金会网站建设是哪家公司
  • 无锡市锡山区建设局网站平面设计网上怎么接单
  • 安徽专业网站建设检修微信公众号定位开发
  • 网站转备案公司网站推广计划书
  • 新网站怎么做论坛推广百度免费网站如何建设
  • 网站建设财务处理网站建设太金手指六六六
  • 百度推广怎么做的网站吗广州珈瑶公司是哪一年注册的
  • 做网站设计挣钱吗怎么修改网页源代码
  • 北辰正方建设集团网站googleplay官方下载
  • 邯郸建设网站公司中英文的网站是怎么做的
  • 不规则网站模板怎么注册英文网站域名
  • 余姚网站建设notepad做网站技巧