UIコンポーネントへドメインを持ち込まない
UIコンポーネントのイベントハンドラは結果がどうなるかは関心を持たない
振る舞いは上位階層で決める
<PresentationalComponent onXXX={handleXXX}/>
処理の詳細はonXXX: ()=> voidに任せる
UIコンポーネントはピュアであるべき(=UIコンポーネントを副作用で挟む)
UIがピュアだと振る舞いが変更しやすく改修時に腐りづらい
振る舞いのバリエーションが増えた際に、「変更」ではなく「追加」で対応できることを目指す
ロジックを扱う場合は、常にバリエーションが増えるか?を問いかける
振る舞いは物が置かれる環境によって決まる
UIコンポーネントは親コンポーネントの文脈によりどう振る舞うかが決まる
UIコンポーネントが特定の文脈に依存したpropsや具体的すぎる命名のイベントハンドラを扱うということは、文脈に依存しているということ optionalな引数を増やさない
ifで分岐しない
- パターンを用意して呼び出し側で切り替える