From 4abbb4eb9cb6c46a1dc3ce632698dc5de6366b74 Mon Sep 17 00:00:00 2001 From: Wu Haotian Date: Mon, 7 Aug 2017 14:21:03 +0800 Subject: [PATCH] cache resolved layouts in resolvedLayouts --- lib/app/App.vue | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/app/App.vue b/lib/app/App.vue index d2e9f8a163..9febdf0078 100644 --- a/lib/app/App.vue +++ b/lib/app/App.vue @@ -19,6 +19,8 @@ layoutsKeys.forEach(function (key, i) { %> <% }) %> } +let resolvedLayouts = {} + export default { head: <%= JSON.stringify(head) %>, data: () => ({ @@ -42,13 +44,14 @@ export default { loadLayout (layout) { if (!layout || !layouts['_' + layout]) layout = 'default' let _layout = '_' + layout - if (typeof layouts[_layout] !== 'function') { - return Promise.resolve(layouts[_layout]) + if (resolvedLayouts[_layout]) { + return Promise.resolve(resolvedLayouts[_layout]) } return layouts[_layout]() .then((Component) => { - layouts[_layout] = Component - return layouts[_layout] + resolvedLayouts[_layout] = Component + delete layouts[_layout] + return resolvedLayouts[_layout] }) .catch((e) => { if (this.$nuxt) {