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
}