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

Islands on Rails !!

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for matsudai matsudai
October 24, 2025
56

Islands on Rails !!

Izumo Developers' Guild Brazilian BBQ(第10回)
https://izumo-developers-guild.connpass.com/event/365015/

Avatar for matsudai

matsudai

October 24, 2025
Tweet

Transcript

  1. 実現方法 ↓ Vite (React) ↑ Rails • ReactコンポーネントをRailsで利用するには 🤔 ◦

    Vite (React) は設定でESModule(ESM)へビルド可能 ✅ ◦ RailsはデフォルトのimportmapでESMを取込可能 ✅ ◦ TailwindCSSのビルドツールはフレームワーク非依存 ✅     → これでいけそう! ① Reactコンポーネントを ESMにビルド   → Railsでimport ② React側のCSSをRailsでimport   → TailwindCSSでビルド
  2. 実現方法 代表的な設定 時間がないので飛ばす 今回のリポジトリ:  https://github.com/matsudai/islands-on-rails-sample Rails: ReactのESM・CSSのロード設定 Vite (React): ESMへのビルド

    ※ 実際はモジュール(React/Tailwind)   の導入や、Railsサーバ起動時に   Viteのビルドサーバを起動する設定   が必要なので↓をご確認ください。
  3. • React/Railsの境界をHTTP APIでなくJSオブジェクトにする方法の紹介 • 利点・欠点: ◦ ❌ Reactコンポーネントの呼び出し方にクセがある ◦ ⭕

    JSON APIが不要 ▪ → CORS設定、CSRF対策、エラーハンドリング複雑化などの回避 ◦ ⭕ WebSocketによる双方向通信 も簡単に実装可能 ◦ ⭕ Railsのデフォルト (importmap)で実現可能 ▪ → Railsで開発を進めていき、 UIに行き詰ってから導入できる   → UIへの要求・開発体制に応じた段階的導入が可能、    開発初期からビジネス上の課題解決に集中できる! まとめ 今回のリポジトリ:  https://github.com/matsudai/islands-on-rails-sample
  4. 余談 「アイランド・アーキテクチャ 」  - パフォーマンスのため基本的にサーバ側でページを生成。    クライアント(Webブラウザ)側で部分的なコンポーネントを生成。              ↓ 今回は ↓

    「アイランド …?      」  - 基本的にRailsでページを生成・更新(サーバ側+動的なデータの搬送) 。    クライアント側(React)で複雑なUIコンポーネントを生成。