Fusic Tech Live Vol.21


Typescript

発表者

  • 浦田大貴さん

技術スタック

  • Ruby on Rails
  • PHP Laravel

TypeScriptでフルスタックのフレームワークを探している理由

  • ReactとTypeScriptでイケてるUIにしたい

RedWoodJS

  • Routing: RedWoodJSのルーティングは、React Routerをベースにしていて、ページ間のナビゲーションを簡単に設定できる。ルートは**<Router>コンポーネント内で定義し、各ページは<Route>**コンポーネントで指定する。JavaScript

    import { Router, Route } from '@redwoodjs/router' const Routes = () => ( <Router> <Route path="/" page={HomePage} name="home" /> <Route path="/about" page={AboutPage} name="about" /> </Router> )
  • Layout: レイアウトは、アプリ全体で共通のUI要素(ヘッダー、フッターなど)を定義するためのコンポーネント。これで各ページで共通のデザインを維持できる。

  • Cell: Cellは、データフェッチングと表示を簡単にするためのコンポーネント。GraphQLクエリを使ってデータを取得し、その結果に基づいてUIをレンダリングする。これでデータの取得と表示が一体化され、コードがシンプルになる。JavaScript

    export const QUERY = gql` query { posts { id title body } } ` const PostsCell = () => { const { data, loading, error } = useQuery(QUERY) if (loading) return <div>Loading...</div>if (error) return <div>Error: {error.message}</div>return ( <ul> {data.posts.map((post) => ( <li key={post.id}>{post.title}</li> ))} </ul> ) }
  • SDL (Schema Definition Language): SDLは、GraphQLスキーマを定義するための言語。RedWoodJSでは、バックエンドのAPIを定義するために使われ、データの構造やクエリの方法を明確にする。

  • Service: サービスは、ビジネスロジックを含むバックエンドの関数。データベース操作や外部APIとの通信などを行い、アプリの主要な機能を実装する。

  • Validation: バリデーションは、ユーザー入力の検証を行うための機能。RedWoodJSでは、フォーム入力のバリデーションを簡単に設定でき、ユーザーが正しいデータを入力することを保証する。

  • Database: データベースは、Prismaを使用して管理。Prismaは、データベーススキーマの定義とデータ操作を簡単にするORM(オブジェクトリレーショナルマッピング)ツールで、データベースとのやり取りを効率化する。

  • Scaffolding: スキャフォールディングは、コードの自動生成機能。RedWoodJSでは、CRUD操作のためのコードを自動生成でき、開発の初期段階を迅速に進めることができる。

React Server Components

  • React Server Componentsは、サーバーサイドでレンダリングされるReactコンポーネント。これにより、クライアントサイドのJavaScriptの負荷を軽減し、パフォーマンスを向上させる。サーバーでレンダリングされたコンポーネントは、クライアントに送信され、クライアント側での再レンダリングを最小限に抑える。

Back to list