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