2018年11月28日 星期三

[Day9]redux初探 - reducer實作

Flux這個單向資料流的解決了很多資料同步的問題,最致命的缺點在於Store這個角色承擔了二個職責:

  1. 儲存資料狀態
  2. 根據Action改變資料狀態
因此Redux主要的目的就是將上述兩者拆開,拆法如下:
  1. 儲存資料狀態=>用狀態樹紀錄(一個應用程式只會有一個Store,裡面包含多個State)
  2. 改變資料狀態=>用Reducer解決 (Reducer概念源於Elm architecture)

整體改變:
1.Store從多個變成一個,因為被多個State和Reducer取代,原本的Store概念變成所有State集合的地方。
2.因為1.,所以就不需要Dispatcher來分配Action到Store,因為只有一個Store,因此移除Dispatcher
3.加入Reducer的概念管理資料變更

source code:
https://github.com/ShawnTseng/react-for-fun/commit/b0d325de9e4a26fbf2f4b0fc8a167845d2bbd0a6
https://github.com/ShawnTseng/react-for-fun/commit/f4bea26a2dad81f5ead9f6d930f0d8f5801ff5a5

沒有留言:

張貼留言