Add server-side rendering (via bundleRenderer, as this is what the Vue docs recommend, and apparently the only way it does encapsulation)

This commit is contained in:
Steve Sanderson
2017-03-10 10:51:47 +00:00
parent 360688f78b
commit 119b274c19
14 changed files with 117 additions and 51 deletions

View File

@@ -0,0 +1,18 @@
import { createServerRenderer, RenderResult } from 'aspnet-prerendering';
import { createBundleRenderer } from 'vue-server-renderer';
const path = require('path');
const bundleRenderer = createBundleRenderer(path.resolve('ClientApp/dist/vue-ssr-bundle.json'), {
template: '<!--vue-ssr-outlet-->'
});
export default createServerRenderer(params => {
return new Promise<RenderResult>((resolve, reject) => {
bundleRenderer.renderToString(params, (error, html) => {
if (error) {
reject(error);
} else {
resolve({ html: html });
}
});
});
});