Node.jsでReact.jsのサーバーサイドレンダリング
Reactjsでwebアプリケーションを作る時に良いことの一つには、サーバーサイドレンダリングが自然な感じで出来るということがあるかと思います。
基本的に違いは2つだけみたいです。
- renderメソッドの代わりにrenderToString(特殊な状況ではrenderToStaticMarkUp)を使う
- 描画対象のDOMノードは指定しない
こんな感じで試してみました。123456789101112131415var React = require('react');var ServerSide = React.createClass({ render: function () { ; return ( <h1>Hello! React-Server-Side-Rendering.</h1> ); }});module.exports = React.renderToString(<ServerSide />);// クライアントサイドだとこんな感じでDOMノードを指定してrenderしている// React.render(<ServerSide />, document.body);
###gulp
jsxで書いていたら、jsにコンパイルしてあげる必要があります。
上のファイルを、例えばgulpでこんな感じにコンパイルしてあげます。
|
|
###サーバー側
Hapiを使ってサーバーを立てています。
|
|
これならクライアントサイドの延長で記述できそうで素敵です。