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

UIの境界線をデザインする | React Tokyo #15 メイントーク

UIの境界線をデザインする | React Tokyo #15 メイントーク

React Tokyo ミートアップ #15 におけるメイントーク。
React Server Componentsを扱う上でのマインドの話です。

Avatar for SASAPIYO

SASAPIYO

April 16, 2026

More Decks by SASAPIYO

Other Decks in Programming

Transcript

  1. 自己紹介 LAPRAS株式会社 / SWE ささぴよ React Tokyo コミュニティサポーター React Tokyoのコミュニティ運営を手伝っています。

    Vue Fes Japan コアスタッフ Vue Fes Japanのコアスタッフとして グラフィックチームを2024年から手伝っています。 何でも屋さん デザイン・フロントエンド・バックエンド・インフラ それぞれをそれなりにやってきています。 2026年4月よりLAPRASにジョイン。 SWEになりました。
  2. アジェンダ 状態管理としての
 URL 内容に依っては状態管理をURL に持たせるという考え方もある 職人の仕事 サーバーとクライアント。 その境界線を引くという職人の 仕事について考える クライアントの納税

    JavaScriptを実行させるという 「納税」が起こっている そんな考え方から、税金の減ら し方を考える コンポジション アイランドの概念を使って 上手くコンポーネントを作って いく考え方 まとめ 判断基準の整理や 考え方をまとめる
  3. コンポジションの魔術 「import」を捨て 「Slot(穴)」を 設計する 【アンチパターン】
 Client Componentの中で、Server Componentを直接 import する

    【職人の技】
 children や props を使い、島に「中身 を流し込むための穴」だけを空けてお く。 「動く台座」 (Pedestal)としての UIライブラリ ライブラリをそのまま使わない ラッパー(台座)を作る デベロッパー エクスペリエンス(DX) の嘘を暴く 疎結合の美学 テストの容易さ
  4. URL同期(リモコン)の設計 「島」は 状態を持たない 「リモコン」になる URLという 「共通言語」による 同期 UXにもたらす 「3つの自由」 共有の自由

    履歴の自由 速度の自由 【これまで】
 useState で入力を管理し、useEffect でAPIを叩く 【職人の技】
 クライアントコンポーネント(島)の 役割を、「URLのクエリパラメータを 書き換えるだけ」に限定する 【島の仕事】 router.push('?q=react') を実行する 【ブラウザの挙動】 URLが更新され、Reactがサーバーに 「新しいURLに対応するRSCをくださ い」とリクエストする 【海の仕事】 サーバーコンポーネントが searchParams から q=react を受け取 り、DBから最新のデータを取得し て、HTMLの断片としてストリーミン グする
  5. YES (URLに残す ) 【B】リモコン島 (URL Sync) URL操作は島、表示は海。 職人の道具箱:究極の4点チェックリスト 開始: コンポーネント設計時

    YES (秘密あり) 4. 秘密テスト DB/APIキーを直接扱うか? NO (公開情報) 1. 動詞テスト 即座な反応が必要か? NO (表示 のみ ) YES (反応する ) NO (メ モリで OK ) YES (重い ) 2. URLテスト シェア/戻るで復元したい? 3. 重量テスト 中身が巨大・複雑か? 【C】コンポジション (Island Wrapper) 枠は島、中身は海(children)。 【A】完全な海 (Pure RSC) サーバー一択。 JSゼロ。 NO (軽い ) 【D】純粋な島 (Pure RCC) 全てクライアントで完結。
  6. Webの『手触り』を守るために パフォーマンスは 「倫理」 2026年、Webサイトは単なる情報源 ではなく、人々の生活のインフラ 私たちは 「境界線の建築家」 これからのReact開発は、コンポーネ ントを作る仕事から、「サーバーとク ライアントの境界線を美しく描き出す

    仕事」へと変わる(かもしれない) 「職人 (アルチザン)」 としての誇り 誰も気づかないような細かなコンポー ネント分割。 チェックリストに基づいた自問自答。 その地味で丁寧な「手仕事」の積み重 ねだけが、最高の手触りを生み出す