该方法当 props
发生变化时执行, 初始化 render
时不执行, 在这个回调函数里面, 你可以根据属性的变化, 通过调用 this.setState()
来更新你的组件状态, 旧的属性还是可以通过 this.props
来获取, 这里调用更新状态是安全的, 并不会触发额外的 render
调用。
使用好处: 在这个生命周期中, 可以在子组件的 render
函数执行前获取新的 props
, 从而更新子组件自己的 state
。可以将数据请求放在这里进行执行, 需要传的参数则从 componentWillReceiveProps(nextProps)
中获取。而不必将所有的请求都放在父组件中。于是该请求只会在该组件渲染时才会发出, 从而减轻请求负担。
componentWillReceiveProps
在初始化 render
的时候不会执行, 它会在 Component
接受到新的状态(Props
)时被触发, 一般用于父组件状态更新时子组件的重新渲染。