Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reactで見る!純粋関数で深ぼる副作用

Avatar for iWonder118 iWonder118
July 18, 2025
40

 Reactで見る!純粋関数で深ぼる副作用

Avatar for iWonder118

iWonder118

July 18, 2025
Tweet

Transcript

  1. 冪等性を持つ関数とは 課金処理を何回も実行しても1回のみ実行してほしい! • 入力が同じなら、常に同じ出力になる関数。 • 外部の状態を変更しない。 特徴 • 純粋関数のメリットは引き継がれる •

    スナップショット/状態同期が安定 • 副作用の最小化・明示化 メリット フォームの入力値に変更がない状態で保存しても同じ保存状態にしてほしい! イメージ
  2. 副作用とは • 出力が引数だけに依存していない • 外部に影響を及ぼす • 副作用は、純粋性を壊す。 特徴(広義の意味 ) •

    外部状態の変更・参照(useEffect云々周り) → グローバル変数、DOM操作、API通信など。 • 状態管理 • etc… 特徴(Reactでの意味)
  3. 純粋関数との差分 part2 純粋性 冪等性 副作用 純粋関数のコンポーネント ✅あり ✅あり ❌なし 冪等性を持つコンポーネント

    ❌なし ✅あり 🔼あったりなかったり 副作用を持つコンポーネント ❌なし ❌なし ✅あり 純粋性のメリットを持ちつつ、副作用が同居できる 冪等性を持ったコンポーネントを作っていくべきか?
  4. t-wadaさんに聞いてみた その他有象無象の関数たち Q:純粋性もない、冪等性も持たない、再現性もない、あれもないこれもないやつらはなん と呼べば? 基本的には純粋性の部分と副作用などを 持つロジックの部分は分けるべき ->ReactのUIとロジックの分離 ただしそうもいかない場面があり、 そういった関数がビジネスを支えている インペラティブ処理

    (t-wadaさんワード ) ※imperative・・・ぜひともしなければならない、緊急の、必須で、肝要で、命令的な、断固とした、           威厳のある、厳然たる、命令法の サインを貰っている途中に聞いたので齟齬が あるかもしれないですが .....