0
我想弄清楚反應生命週期方法shouldComponentUpdate
最習慣的實現。我覺得我和其他人可能不會使用這種方法,因爲它是可選的。shouldComponentUpdate的語法實現?
通常我想檢查對象的props
或state
是否在更新之間更改。
因爲這種平等是在對象引用指向這不起作用:
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。
我錯過了什麼嗎?有沒有更簡潔的方法呢?
最簡潔肯定是ImmutableJS,其他一切都不會很簡單。 –