やりたいこと
サーバサイドレンダリングで出力したJSONをクライアントサイドのJavaScriptから読み込みたい。
構成
- Node.js
- Express + express-react-views
書き方
ExpressのViewとしてexpress-react-viewsを利用しているためJSX表記。
- JSON.stringify()でJSONを文字列化。
- そのままJavaScriptコードを書くとJSXがparseしてしまったりするので、dangerouslySetInnerHTMLで埋め込む。
render: function () {
var somelist_json = JSON.stringify( this.props.list );
somelist = 'var somelist = ' + somelist_json';
return (
<head>
<script dangerouslySetInnerHTML={{__html: somelist}}></script>
</head>
);
}
これでクライアントサイドJSはsomelistを読み出すことができるようになる。