shouldComponentUpdate的惯用法实现?

时间:2016-10-29 13:54:43

标签: javascript reactjs

我试图弄清楚反应生命周期方法shouldComponentUpdate的最惯用的实现。我觉得我和其他人可能没有使用这种方法,因为它是可选的。

通常我想检查对象的propsstate是否在更新之间发生了变化。

这不起作用,因为此等式指向对象引用:

shouldComponentUpdate(nextProps, nextState) {
  return this.props !== nextProps;
}

那么我们就去了对象克隆的兔子洞,这似乎是一个丑陋的解决方案:

 return JSON.parse(JSON.stringify(this.props) !== JSON.parse(JSON.stringify(nextProps));

 // lodash cloning method
 return _.cloneDeep(this.props) !== _.cloneDeep(nextProps);

另一种可能性是使用像immutablejs这样的不可变库,但这是另一个我不确定要添加到项目中的依赖项,还有另一个要学习的API。

我错过了什么吗?对此有更简洁的方法吗?

1 个答案:

答案 0 :(得分:1)

您只需使用React's shallow compare来比较道具和状态。

希望这有帮助!