React最近版本(16.4)的生命周期中出现了几个方法,我们先来看下16.4版本的生命周期,也可以看网页版的:React生命周期

React生命周期

其中比较有意思的是getDerivedStateFromProps和getSnapshotBeforeUpdate,让我们看看它们的含义。

getDerivedStateFromProps

它的作用是从prop中获取派生状态(state),派生状态的使用是比较复杂的,因为它可以从prop中获取到,然后自生又可以改变它,也就是说它的来源比较复杂,因此为了简单问题,尽量不要从内部去修改从prop来的派生状态。

最常见的用法就是一个列表控件,根据父控件传递的id去获取数据然后展现:

getDerivedStateFromProps是一个静态方法,返回的内容是直接作为state,它的用法就是将外部的prop对应到内部的state上(注意,这种state最好不要从内部去修改它,否则会造成开头说到的那种派生state问题),然后通过外部prop的id和内部state上的id是否相同。

getSnapshotBeforeUpdate

它的含义是在React更新Dom元素之前,获取一个快照,它返回的结果将作为componentDidUpdate的第三个参数。一般的用法就是获取更新前的DOM。

上面是一个简单的demo,它就是获取每次render前的孩子个数。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字