@@ -82,6 +82,12 @@ bundleRenderer.renderToStream([context]): stream.Readable
8282
8383### template
8484
85+ - ** 型:**
86+ - ` string `
87+ - ` string | (() => string | Promise<string>) ` (2.6 から)
88+
89+ ** 文字列テンプレートを使用している場合:**
90+
8591ページ全体の HTML を表すテンプレートを設定します。描画されたアプリケーションの内容を指し示すプレースホルダの代わりになるコメント文 ` <!--vue-ssr-outlet--> ` をテンプレートには含むべきです。
8692
8793テンプレートは、次の構文を使用した簡単な補間もサポートします。
@@ -99,13 +105,43 @@ bundleRenderer.renderToStream([context]): stream.Readable
99105
100106 2.5.0 以降においては、埋め込みスクリプトはプロダクションモードで自動的に削除されます。
101107
108+ 2.6.0 以降では、 ` context.nonce ` が存在すれば、それは、埋め込みスクリプトに ` nonce ` 属性として追加されます。これにより、インラインスクリプトを nonce を必要とする CSP に準拠することができます。
109+
102110加えて、` clientManifest ` も渡された場合、テンプレートは自動で以下を挿入します。
103111
104112- (自動で受信される非同期のデータを含んだ)描画対象が必要とするクライアントサイドの JavaScript と CSS アセット
105113- 描画済みのページに対する最適な ` <link rel="preload/prefetch"> ` リソースヒント
106114
107115レンダラに ` inject: false ` も渡すことで、すべての自動挿入を無効にすることができます。
108116
117+ ** 関数テンプレートを使用している場合:**
118+
119+ ::: warning
120+ 関数テンプレートは ` renderer.renderToString ` を使用するとき、2.6 以降でのみサポートされます。` renderer.renderToStream ` はまだサポートされていません。
121+ :::
122+
123+ ` template ` オプションは、描画された HTML 、もしくは描画された HTML を解決する Promise を返す関数を指定できます。これにより、テンプレート文字列、そしてテンプレート描画プロセスにあり得る非同期な操作を利用できます。
124+
125+ 関数は 2 つの引数を受け取ります:
126+
127+ 1 . アプリケーションコンポーネントの描画結果の文字列
128+ 2 . 描画コンテキストオブジェクト
129+
130+ 例:
131+
132+ ``` js
133+ const renderer = createRenderer ({
134+ template : (result , context ) => {
135+ return ` <html>
136+ <head>${ context .head } </head>
137+ <body>${ result} </body>
138+ <html>`
139+ }
140+ })
141+ ```
142+
143+ カスタムテンプレート関数を使用するとき、自動的に注入されるものが何もないことに注意してください。最終的な HTML に含まれるものを完全に制御できますが、全てあなた自身で含める必要があります (例えば、バンドルレンダラを使用する場合のアセットのリンク)。
144+
109145参照:
110146
111147- [ ページテンプレートの使用] ( ../guide/#using-a-page-template )
@@ -243,6 +279,31 @@ const renderer = createRenderer({
243279
244280例として、[ ` v-show ` のサーバサイド実装はこちら] ( https://github.com/vuejs/vue/blob/dev/src/platforms/web/server/directives/show.js ) です。
245281
282+ ### serializer
283+
284+ > 2.6 で新規追加
285+
286+ ` context.state ` に対してカスタムシリアライザ関数を提供します。シリアライズされた状態は最終的な HTML の一部になるため、セキュリティ上の理由から、HTML 文字を適切にエスケープする関数を使用することは重要です。デフォルトシリアライザは、` { isJSON: true } ` がセットされた [ serialize-javascript] ( https://github.com/yahoo/serialize-javascript ) です。
287+
288+ ## サーバのみのコンポーネントオプション
289+
290+ ### serverCacheKey
291+
292+ - ** 型:** ` (props) => any `
293+
294+ 受信プロパティ (incoming props) に基づいたコンポーネントのキャッシュキーを返します。 ` this ` にアクセスできません。
295+ 2.6 以降、` false ` を返すことによってキャッシュを明示的に回避することができます。
296+
297+ 詳細は[ コンポーネントレベルでのキャッシュ] ( ../guide/caching.html#component-level-caching ) を参照してください。
298+
299+ ### serverPrefetch
300+
301+ - ** 型:** ` () => Promise<any> `
302+
303+ サーバサイドレンダリング中に非同期データをフェッチします。この関数はフェッチしたデータをグローバルストアに保存し、Promise を返します。サーバレンダラはこのフック上で Promise が解決されるまで待ちます。このフックは ` this ` 経由でコンポーネントインスタンスにアクセスします。
304+
305+ 詳細は[ データのプリフェッチと状態] ( ../guide/data.html ) を参照してください。
306+
246307## webpack プラグイン
247308
248309webpack プラグインは、スタンドアロンのファイルとして提供され、次の値を必要とします:
0 commit comments