React Server Components (RSC) は、React アーキテクチャの大幅な進化であり、サーバーでレンダリングされるアプリケーションのパフォーマンス、開発者エクスペリエンス、およびユーザー エクスペリエンスを向上させるように設計されています。この記事では、RSC とは何か、サーバーサイド レンダリング (SSR) との違い、RSC が提供する利点について、理解を助ける例と視覚的な図を用いて説明します。
React サーバー コンポーネントは、コンポーネントをサーバー上でレンダリングし、シリアル化された React ツリーとしてクライアントに送信できるようにする機能です。すべてのコンポーネントとロジックがクライアント上で処理される従来のクライアント側レンダリングとは異なり、RSC はこの作業の大部分をサーバーに移動するため、バンドル サイズが削減され、パフォーマンスが向上します。
Feature | SSR (Server-Side Rendering) | RSC (React Server Components) |
---|---|---|
Execution Environment | Both server and client handle logic and rendering. | Only the server renders specified components. |
Bundle Size | Ships JavaScript for rendering logic to the client. | Does not ship server component logic to the client. |
Interactivity | Requires hydration for interactivity on the client. | Combines server-rendered components with client-side interactivity. |
Performance | Full page rendering on the server. | Streams component-level updates for faster rendering. |
サーバー コンポーネントとして指定されたコンポーネントはサーバー上で実行され、データを取得して React ツリーを生成します。
サーバーはシリアル化された React コンポーネントをクライアントにストリーミングし、そこで既存のクライアント側 React コンポーネントと統合します。
インタラクティブなクライアント コンポーネントは、必要に応じてハイドレートし、引き継ぎます。
// ServerComponent.server.js export default function ServerComponent() { const data = fetchDataFromDatabase(); // Server-only logic return <div>Data from server: {data}</div>; } // ClientComponent.client.js export default function ClientComponent() { return <button onClick={() => alert('Clicked!')}>Click Me</button>; } // App.js import ServerComponent from './ServerComponent.server'; import ClientComponent from './ClientComponent.client'; export default function App() { return ( <div> <ServerComponent /> <ClientComponent /> </div> ); }
この例では、ServerComponent がサーバー ロジックを処理しますが、ClientComponent はクライアント上で対話型のままです。
export default function SSRComponent({ data }) { return ( <div> <div>Data: {data}</div> <button onClick={() => alert('Clicked!')}>Click Me</button> </div> ); } // Server-side Rendering const serverData = fetchDataFromDatabase(); const html = renderToString(<SSRComponent data={serverData} />);
SSR では、インタラクティブ コンポーネントを含むすべてのレンダリング ロジックがサーバー側のレンダリング中に処理される必要があります。
RSC と SSR を比較する簡略図は次のとおりです。
RSC ワークフロー:
SSR ワークフロー:
React Server コンポーネントは、ストリーミング を利用してコンテンツを段階的にレンダリングします。これにより、最も重要なコンテンツが即座にペイントされ、重要性の低い部分は準備が整い次第流れ込むことが保証されます。
React Server Components は、React アプリケーションのパフォーマンスを最適化する革新的なアプローチを提供します。 RSC は、レンダリング ロジックをサーバーにオフロードし、クライアント側のバンドルを削減し、ストリーミングを活用することにより、開発者とユーザーの両方のエクスペリエンスを向上させます。
パフォーマンスを向上させながら React アプリケーションを効率的に拡張したい場合は、RSC を検討することが必須です。
RSC についてどう思いますか?以下のコメント欄でお知らせください。 ?
以上がReact Server Components (RSC): 例を使った詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。