2016-10-29 28 views
0

我想弄清楚反應生命週期方法shouldComponentUpdate最習慣的實現。我覺得我和其他人可能不會使用這種方法,因爲它是可選的。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。

我錯過了什麼嗎?有沒有更簡潔的方法呢?

+2

最簡潔肯定是ImmutableJS,其他一切都不會很簡單。 –

回答