refactor(router): reduce duplicate code in routes.js (#4121)

This commit is contained in:
Vladlen 2018-10-17 08:56:43 +11:00 committed by Pooya Parsa
parent 411e89e52c
commit a359424741
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,6 @@
import Vue from 'vue'
import Router from 'vue-router'
import { interopDefault } from './utils';
<% function recursiveRoutes(routes, tab, components) {
let res = ''
@ -25,14 +26,14 @@ import Router from 'vue-router'
}
const _components = []
const _routes = recursiveRoutes(router.routes, '\t\t', _components)
%><%= uniqBy(_components, '_name').map((route) => {
%> <%= uniqBy(_components, '_name').map((route) => {
if (!route.component) return ''
const path = relativeToBuild(route.component)
const chunkName = wChunk(route.chunkName)
const name = route._name
if (splitChunks.pages) {
return `const ${name} = () => import('${path}' /* webpackChunkName: "${chunkName}" */).then(m => m.default || m)`
return `const ${name} = () => interopDefault(import('${path}' /* webpackChunkName: "${chunkName}" */))`
} else {
return `import ${name} from '${path}'`
}

View File

@ -19,6 +19,10 @@ export function globalHandleError(error) {
}
}
export function interopDefault(promise) {
return promise.then(m => m.default || m);
}
export function applyAsyncData(Component, asyncData) {
const ComponentData = Component.options.data || noopData
// Prevent calling this method for each request on SSR context