react16为啥要更改生命周期
react16对render方法也做了改进,16之前必须返回单个元素,16允许我们返回元素数组和字符串
getDerivedStateFromProps其实不是ComponentWillMout的替代品,有且只有一个用途,使用props来派生、更新state,这个钩子函数在更新和挂载两个阶段都会出现
getDerivedStateFromProps最主要是为了替换ComponentWillReceiveProps
getDerivedStateFromProps是一个静态方法,在里面是访问不到this的,在里面做的事情就没有像ComponentWillReceiveProps一样多,只能更加关注与是否更新
接受两个参数,一个是props一个是自身的state
16和之前的差异在于更新流程上
componentWillUpdate被getSnapshotBeforeUpdate替换,getSnapshotBeforeUpdate的返回值会作为第三个参数给到Didupdate,执行时机在render后,真实dom更新之前,同时获取到更新前的真实dom和更新前后的props&state信息