react16 对外暴露方法_React16版本特性介绍

c0c59ecfb076b299325077c024449baa.png

React新版本生命周期

06a2c2c000ffe29c9b47436c501173be.png

新增生命周期

static getDerivedStateFromProps(prevProps, prevState) 在每次渲染之前都会调用,不管造成重新渲染的原因,不管初始挂载还是后面的更新都会调用,这一点和componentWillReceiveProps不同(只有当父组件造成重新渲染时才调用),每次都应该返回一个对象作为state的更新,或者返回null表示不更新

它的使用场景一般为依赖于props的变化去做一些状态的更新,让我们能够根据props的变化去更新内部的状态,以前我们经常在componentWillReceiveProps中完成该操作,但是你需要考虑的是是否有必要使用这个生命周期getDerivedStateFromProps内部不可以有副作用,因为现在是无论是state改变还是props改变,都会执行它。

  • getSnapshotBeforeUpdate(prevProps, prevState)

在最新的渲染数据提交给DOM前会立即调用,它让你在组件的数据可能要改变之前获取他们,他的返回值会被传递给componentDidUpdate的第三个参数。

  • componendDidCatch(error, info)

如果一个组件定义了componentDidCatch生命周期,则他将成为一个错误边界(错误边界会捕捉渲染期间、在生命周期方法中和在它们之下整棵树的构造函数中的错误,就像使用了try catch,不会将错误直接抛出了,保证应用的可用性)

Refs and the DOM

当在你的app中获取dom时,例如在一些组件,你需要获取到当前dom对象,并进行相应的操作(代替暴露open()和close()方法在一个对话框组件,通过isOpen属性)。

class MyComponent extends R
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值