5

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

4

2 回答 2

7

他们有两个不同的角色并在不同的情况下执行:

shouldComponentUpdate每次 prop 或 state 中的某些东西发生变化(或 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

于 2017-11-28T12:43:58.490 回答
0

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

shouldComponentUpdate - 是一个过滤器函数,它决定是否应该重新渲染组件树。这个函数可以作为一个额外的过滤器,你正在改变的地方不需要重新渲染

更多信息在这里

于 2017-11-28T12:31:04.030 回答