为什么React保持componentWillReceiveProps和shouldComponentUpdate方法?

时间:2017-11-28 12:27:26

标签: javascript reactjs virtual-dom

当我使用的反应,我觉得这两个生命周期都太相似了,componentWillReceiveProps收到nextProps作为参数,shouldComponentUpdate收到nextProps和nextState作为参数,所以我觉得shouldComponentUpdate可以做同样的事情多了,为什么反应过来守componentWillReceiveProps方法,我想知道这两种方法之间有什么区别

2 个答案:

答案 0 :(得分:5)

他们有两种不同的角色,可以在不同情况下执行:

每当状态中的道具或事物发生变化(或者React认为已经发生变化)时,都会调用{p> shouldComponentUpdate。它的功能是通过返回布尔值来确定组件是否应该重新渲染: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

答案 1 :(得分:0)

componentWillReceiveProps - 正如函数名称所述,每当新的道具传递给组件并且你可以根据新的道具状态触发一个动作时就会调用它

shouldComponentUpdate - 是一个过滤函数,它决定是否应该重新呈现组件树。此功能可以作为额外的过滤器,您可以在其中进行更改,而不需要重新渲染

更多信息here

相关问题