EJSとReactを使用する方法

EJSとReactを使用する方法

EJSとReactは、異なるテンプレートエンジンですが、両方を同じプロジェクトで使用することも可能です。
ただし、両者の役割は異なるため、基本的にはEJSとReactを混在させることは推奨されません。
それでも組み合わせて使う場合の方法を説明します。

1. EJSを使用してサーバーサイドレンダリングを行う
サーバーサイドでEJSを使い、HTMLを生成します。
そのHTMLにReactのルートDOMノードを配置します。

2. Reactコンポーネントをクライアントサイドでレンダリングする
EJSで生成されたHTMLに、Reactのルートとなる要素を含め、その要素に対してクライアントサイドでReactをレンダリングします。
Reactコンポーネントをインポートし、ReactDOM.renderを使用して、指定した要素内にコンポーネントを挿入します。

例:

  • EJSテンプレート (index.ejs)
<html>
<head>
    <title>My App</title>
</head>
<body>
    <div id="root"><%- content %></div>
    <script src="/path/to/react/bundle.js"></script>
</body>
</html>
  • Reactのエントリーポイント (index.js)
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

この方法では、サーバーサイドでEJSを使って基本的なHTMLを生成し、その後クライアントサイドでReactが動的なコンテンツを扱います。
EJSを使って初期のHTML構造を提供し、Reactを使ってインタラクティブな部分を追加する、といった使い方が一般的です。