123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { createApp } from './main'
- const { app, router, store } = createApp()
- if(window.__INITIAL_STATE__){
- store.replaceState(window.__INITIAL_STATE__)
- }
- // router.beforeEach((to,from,next)=>{
- // const uskyDb = new indexedDb("uskyDb") //创建或连接DB数据库
- // uskyDb.openStore("menu","id",['list']).then((res:any)=>{
- // next()
- // })
- // })
- router.isReady().then(() => {
- //比较to、from不同时执行数据预取
- router.beforeResolve((to,from,next)=>{
- let toComponents = router.resolve(to).matched.flatMap(record=>Object.values(record.components))
- let fromComponents = router.resolve(from).matched.flatMap(record=>Object.values(record.components))
- let actived = toComponents.filter((c,i)=>{
- return fromComponents[i] !==c
- })
- if(!actived.length){
- return next()
- }
- //对所有匹配的路由组件调用`asyncData()
- Promise.all(actived.map((Component:any) =>{
- if(Component.asyncData){
- return Component.asyncData({
- store,
- route: router.currentRoute
- })
- }
- })).then(()=>{
- next()
- })
- })
- //页面刷新
- const matchedComponents = router.currentRoute.value.matched.flatMap(record =>Object.values(record.components))
- //对所有匹配的路由组件调用`asyncData()
- Promise.all(matchedComponents.map((Component:any) =>{
- if(Component.asyncData){
- return Component.asyncData({
- store,
- route: router.currentRoute
- })
- }
- }))
-
- app.mount('#app')
- })
|