- getDerivedStateFromProps()
会在render之前调用,并且会在初始页面也后续更新时都会调用,若返回一个对象则会更新state,若返回null也不做任何更新。
当state在任何时刻都取决于props时可以在该钩子中对props和state进行对比判断,因为可以接受props和state两个参数。当state的值依赖props时需要使用当前钩子函数。
static getDerivedStateFromProps(props, state){
console.log('getDerivedStateFromProps', props, state)
return props
}
getDerivedStateFromProps()与componentWillReceivedProps()进行对比,后者仅在父组件重新渲染时触发,或子组件所接收props改变时触发,而不是setState时触发。
- getSnapshotBeforeUpdate()
会在最近一次渲染输入到DOM之前调用,使得组件可以从更新DOM之前获取到更新前的信息,比如滚动位置等等,此生命周期的任何返回值,可以为snapshot的value值也可以是null,都可以作为componentDidUpdate(prevProps, prevState, snapshotValue)生命周期的第三个参数调用