loan-front-team / data2graph

3 stars 1 forks source link

在react updating生命周期中有一个分支周期函数叫componentWillReceiveProps,这个周期函数的作用是什么?在什么场景下使用 #4

Open overcastsky opened 6 years ago

overcastsky commented 6 years ago

componentWillReceiveProps这个生命周期函数的意思就是组件接收一个新的props,他的作用是在于,当props发生改变后就会执行这个周期函数,但是注意的是,在组件的内部我们是不可以改变props的值,所以他的使用场景就是有两个组件,父组件和子组件,父组件通过props将数据传递给子组件,当父组件的props的值改变后,引起子组件的值改变,这时候我们就可以在子组件中添加这个周期函数。

lulu27753 commented 6 years ago

既然父组件要把props传递给子组件,那为啥要去改变props的值,可以举个使用场景吗 @overcastsky

overcastsky commented 6 years ago

举一个很简单的例子,假设有两个组件,一个父组件一个子组件,父组件名字叫Parent是一个

lulu27753 commented 6 years ago

做一下理解更正,componentWillReceiveProps这个生命周期函数并不是只有当组件的props发生改变时才会调用,而是只要父组件的render函数被调用,就会触发子组件的componentWillReceiveProps

lulu27753 commented 6 years ago

PS: this.setState()触发的更新过程不会调用这个生命周期函数,这是因为这个函数会根据新的props值(参数nextProps)来计算出是否要更新内部的state