From 8b63b64f54de36589d21799708987ee6fba6b563 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Sat, 5 Aug 2017 13:08:21 +0430 Subject: [PATCH] feat: dynamic spa using serverMiddleware --- lib/core/renderer.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/core/renderer.js b/lib/core/renderer.js index 20fc30fe44..01b81b28ca 100644 --- a/lib/core/renderer.js +++ b/lib/core/renderer.js @@ -412,21 +412,23 @@ export default class Renderer extends Tapable { context.url = url context.isServer = true - // Basic response if SSR is disabled - if (this.noSSR) { - let APP = '
' - let HEAD = '' - - let html = this.resources.spaTemplate({ + // Basic response if SSR is disabled or spa data provided + const SPAData = context.spa || (context.res && context.res.spa) + if (this.noSSR || SPAData) { + const data = { HTML_ATTRS: '', BODY_ATTRS: '', - HEAD, - APP - }) - - return { - html + HEAD: '', + APP:
} + + if (SPAData) { + Object.assign(data, SPAData) + } + + const html = this.resources.spaTemplate(data) + + return { html } } // Call renderToString from the bundleRenderer and generate the HTML (will update the context as well)