Flux:
Actions trigger reducer to update states in the store.Redux 的行為等於事件驅動系統 ( Event-driven System ) / 有限狀態機 ( FSM ):
Events trigger event handler to update states in the machine.Action | Event | Signal | Message |
Reducer | Event Handler | Finite State Machine 中的 transducer |
Redux 的行為等於一個網頁伺服器:
When a request came, using route table mapping to get a method to process it。Action | Http Request |
Store.dispatch(Action) | 送 Request 到 Server |
Reducer | Router 把 Request 送到對應的 Router Method,更新 Database |
Store | Database |
UI / React | Http Response |
Redux的行為等於巷口那家... 哎 想不出來比較生活的說法。
現在有沒有覺得 Redux 很 Awesome?好像沒有啊... 但我們回到瀏覽器的環境重新看一下,因為 HTML 的元件很小,開發者會組合 HTML元件成為可重複使用的「大元件」。但問題是瀏覽器中的 「事件處理系統」 是針對 HTML 小元件的,沒有給「大元件」的。於是Redux 提供了給開發者可以自行定義事件的「大元件」事件處理系統,因為你可以控制整個事件處理系統,重播和紀錄事件都變成毫不費力的事。現在又感覺到 Redux 很 Awesome了吧!!!
故事到了這邊,一定會想這樣解說,哪個六歲小孩能了解啊,相信這是大家共同的疑惑,不過 「投資一定有風險,基金投資有賺有賠,申購前應詳閱公開說明書」,我會反省的...
---
延伸閱讀:
redux 的專有名詞解釋
Redux Issue 891:Is redux conflating actions with events?
六歲小孩也能懂的 Javascript Closure 說明
沒有留言:
張貼留言