为什么React会同时保留componentWillReceiveProps和shouldComponentUpdate方法?

201*_*014 5 javascript reactjs virtual-dom

当我使用react时,我发现这两个生命周期太相似了,componentWillReceiveProps接收nextProps作为参数,shouldComponentUpdate接收nextProps和nextState作为参数,所以我认为shouldComponentUpdate可以做同样的事情以及更多,为什么react保持componentWillReceiveProps方法,我想知道是什么这两种方法之间的区别

Fac*_*teo 6

它们具有两种不同的角色,并在不同的情况下执行:

shouldComponentUpdate每当状态中的道具或事物发生变化(或React认为已发生变化)时,都会调用。它的功能是通过返回布尔值来确定是否应重新渲染true组件:是否应重新渲染组件(这是默认的返回值),否则false不应该。您可以访问当前状态和下一个状态以及道具,以进行比较并确定是否真的应该重新渲染。您不应出于其他原因使用此方法。

另一方面,componentWillReceiveProps仅当道具更改(或似乎已更改)时才调用。如果仅状态改变,则不会调用此方法。另外,这不会决定是否应重新渲染组件。例如,您可以使用此方法来更改某些状态或进行API调用。

查看以下链接:

componentWillReceivePropshttps : //developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/component_will_receive_props.html

shouldComponentUpdatehttps : //developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/using_should_component_update.html


zta*_*c91 0

componentWillReceiveProps - 正如函数名称所示,每当新的道具将传递给组件时就会调用该函数,并且您可以根据新的道具状态触发操作

shouldComponentUpdate - 是一个过滤器函数,它决定是否应该重新渲染组件树。此函数可以充当附加过滤器,您可以在其中发生更改而无需重新渲染

更多信息请点击此处