react-生命周期 componentWillReceiveProps

react 生命周期 componentWillReceiveProps

这个钩子函数我的用处是 点击按钮返回值 然后再这里获取

1.父组件重新render
直接使用,每当父组件重新render导致的重传props,子组件将直接跟着重新渲染,无论props是否有变化。可通过shouldComponentUpdate方法优化。
2.在componentWillReceiveProps方法中,将props转换成自己的state
是因为componentWillReceiveProps中判断props是否变化了,若变化了,this.setState将引起state变化,从而引起render,此时就没必要再做第二次因重传props引起的render了,不然重复做一样的渲染了。
3.组件本身调用setState,无论state有没有变化。可通过shouldComponentUpdate方法优化。

替代方案
getDerivedStateFromProps
用法

static getDerivedStateFromProps(nextProps,prevState){
 //该方法内禁止访问this
 if(nextProps.email !== prevState.email){
 //通过对比nextProps和prevState,返回一个用于更新状态的对象
 return {
            value:nextProps.email
 }
 }
 //不需要更新状态,返回null
 return null
}