動機
- Reduxというものを知り、WPFアプリ作成に使えるかどうか試したい
- C#とF#を両方使ってみたい
環境、使用したライブラリ・フレームワークなど
参考にしたのは、こちらのストップウォッチアプリです。
ソース
感想
- StateをF#のレコードにしたおかげで、前のStateから次のStateを作る部分がすっきり書けた。C#では、こうは簡単にはできない。
Reducers.fs
static member private TimerReducer(previousState : ApplicationState, action : TimerAction) : ApplicationState =
{ previousState with NowSpan = action.Now - previousState.StartTime
Now = action.Now }
- MVVMではMの部分をどうするか迷うのだが、Reducer、Store、State等に分けることで、役割がはっきりした。VMは、Dispatchと監視・反映を行う。