Redux reselect

shirleyR發表於2018-07-30

最近在接觸selector思想。redux的mapStateToProps引起大量的重複計算。reselect的誕生就是為了解決重複計算,期待能最大化的進行cache。Selector的實現和使用感覺都比較簡單。要贊一下這個理念。

Selector支援的功能

  • selector中可以構造我們想要的props資料,從而最小化了store中需要儲存的資料
  • 相同selector的結果不需要重複計算
  • selector之間可以層級巢狀的

Selector的使用

Selector的使用主要看是否需要帶引數、重寫回撥函式等。使用具體參見github reselect 需要注意的問題是在selector的狀態中未被修改的部分應該保持一樣,否則會引起selector的重新計算,不能達到cache(應該是影響了equalityCheck)

Selector的實現

實現中的幾個要點:

  • 輸入的state是否相同(引用or值) #defaultEqualityCheck
  • createSelectorCreator 支援遞迴呼叫(功能1)
  • createStructuredSelector構造props

可以結合Immutable進行使用

加強版

後續還有selector的map等

相關文章