博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初探16.3+React升级后的生命周期
阅读量:7143 次
发布时间:2019-06-29

本文共 796 字,大约阅读时间需要 2 分钟。

写这篇文章的原因是为了项目中更好的升级React版本,对现有版本迁移到现在16.3版本的新生命周期猜的坑铺展开来,顺便梳理现有React的生命周期。

新增的生命周期

static getDerivedStateFromProps

这个新函数主要是为了确保state和props在调用的获取的时候是同步的,而它存在的意义便是为了替代ComponentWillReciveProps.

然后再采用这个方法的时候引起了我的极度不适,主要是因为他是个static方法(麻蛋!屏蔽了一切通过this的方法),它返回一个对象,而这个对象会合并到组件即将更新的state,就像setState一样。

这个生命周期函数的主要条件是

  • 一个组件已经渲染到页面并且需要更新state的时候
  • 需要从props更新state

getSnapshotBeforeUpdate(prevProps, prevState)

这新的方法都是在虚拟DOM映射到真实DOM前调用。

而这个函数的使用场景是,当你需要获取当前DOM的state的时候。譬如你需要通过下来滚动条往网页顶部添加新数据的时候,通过调用当前方法,你可以计算当前滚动条的位置来维持DOM的更新。

虽然这个函数不是static类型的,但是更推荐用它来返回一个值而不是更新组件,而这个返回的值将作为componentDidUpdate的第三个参数;

而两个异步方法componentWillReceiveProps和componentWillUpdate将在17.0版本被弃用,(UNSAFE_componentWillReceiveProps和UNSAFE_componentWillUpdate将被保留兼容)。潜台词是要升级就请用新周期,不用你就加个UNSAFE恶心自己吧。不过长远来看同步操作对于规避异步状态的维护难的问题起了不小作用。

手写了一份声明周期表

转载地址:http://zpzgl.baihongyu.com/

你可能感兴趣的文章
广西男子酒驾冲撞宵夜摊多人受伤 民众自发抬车救人
查看>>
QuestMobile:抖音快手双巨头并进 短视频时长超越在线视频
查看>>
2019年春运首日 河北实现“空地一体”立体化救援
查看>>
蚂蚁金服mPaaS 3.0发布 助力客户智能化构建超级App生态
查看>>
如何实现全屏遮罩(附Vue.extend和el-message源码学习)
查看>>
阿里:千亿交易背后的0故障发布
查看>>
利用angular4和nodejs-express构建一个简单的网站(十)—好友模块
查看>>
极光大数据告诉你,程序员们都在"愁"些啥?
查看>>
前端基础知识学习记录(三)
查看>>
LeanCloud + Ionic3 迅速重构应用
查看>>
chrome扩展推荐:帮你留住每一次ctrl+c --- Clipboard History 2
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
配置一次,到处运行:将配置与运行时解耦
查看>>
菜鸟成都未来园区启动,无人车首次进入园区调拨运输环节 ...
查看>>
算法不扎实的程序员,每个都很慌
查看>>
Element 2.6.3 发布,基于 Vue 2.0 的桌面端组件库
查看>>
基于kubeadm的kubernetes高可用集群部署
查看>>
定位「数字化助手」,腾讯想用服务创新助力产业智慧升级
查看>>
golang之sync.Mutex互斥锁源码分析
查看>>
SAP增强的PA教材内容
查看>>