JSConf JP

useReducerで実現する、堅牢で拡張可能なスプシ風コンポーネント設計

スポンサーセッショントラックDJapanese

yata

【概要】 AIの進化により、複雑なコンポーネントを簡単に実装できるようになりました。しかし、プロダクト間で一貫したUI/UXを保ち続けるためには、堅牢な設計を元にした拡張性のある共通コンポーネントを構築する必要があります。 本セッションではスプレッドシート風テーブルコンポーネントをテーマに、useReducerをバックエンドAPIとして捉えるアプローチ、履歴や選択範囲などを含めた複合的な状態管理、そしてそれらの拡張性についてお話しします。

【主なトーク内容】

  1. AI時代に求められる共通コンポーネントの意義
  • 気軽に作れてしまう時代だからこそ重要な共通化
  1. なぜuseReducerなのか?
  • useStateの限界と、useReducerのメリット
  1. スプレッドシート風テーブルコンポーネントに立ち向かうための設計
  • useReducerを1つのバックエンドAPIとして捉える設計アプローチ
  • 範囲選択、操作履歴、クリップボードなどの要素を統一的に扱うuseReducerの使い方
  1. プロダクトごとの個別要件を吸収する拡張性の担保
  • 共通のReducerを維持したまま、見た目や挙動をカスタマイズできる設計パターン