import {
|
cached
|
} from 'uni-shared'
|
|
const pageFactory = Object.create(null)
|
|
export function definePage (name, createPageVueComponent) {
|
pageFactory[name] = createPageVueComponent
|
}
|
|
export const getPageVueComponent = cached(function (pagePath) {
|
return pageFactory[pagePath]()
|
})
|
|
export function createPage (pagePath, pageId, pageQuery, pageInstance) {
|
if (!pageFactory[pagePath]) {
|
console.error(`${pagePath} not found`)
|
}
|
const startTime = Date.now()
|
const pageVm = new (getPageVueComponent(pagePath))({
|
mpType: 'page',
|
pageId,
|
pagePath,
|
pageQuery,
|
pageInstance
|
})
|
if (process.env.NODE_ENV !== 'production') {
|
console.log(`new ${pagePath}[${pageId}]:time(${Date.now() - startTime})`)
|
}
|
return pageVm
|
}
|