Spaces:
Running
Running
File size: 1,415 Bytes
5fa7a59 1cb22db 5fa7a59 2048aa6 5b78b55 5fa7a59 b1722bb 5fa7a59 1cb22db 5fa7a59 2048aa6 5b78b55 5fa7a59 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import { createRouter, createWebHistory } from 'vue-router'
import Main from '../pages/Main.vue'
import LeaderboardView from '../views/LeaderboardView.vue'
import LiveView from '../views/LiveView.vue'
import AddAssetsView from '../views/AddAssetView.vue'
import RequestView from '../views/RequestView.vue'
import AssetRequestsView from '../views/AssetRequestsView.vue'
import { dataService } from '../lib/dataService.js'
const routes = [
{
path: '/',
name: 'main',
component: Main,
redirect: '/live',
children: [
{ path: '/leaderboard', name: 'leadboard', component: LeaderboardView },
{ path: '/live', name: 'live', component: LiveView },
{ path: '/add-asset', name: 'add-asset', component: RequestView },
{ path: '/asset-requests', name: 'asset-requests', component: AssetRequestsView },
]
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
// 全局路由守卫:确保数据在导航前开始加载
router.beforeEach(async (to, from, next) => {
// 如果数据还未加载且不在加载中,则触发加载
if (!dataService.loaded && !dataService.loading) {
console.log('[Router] Triggering data load before navigation')
// 不等待加载完成,让加载在后台进行
dataService.load().catch(e => {
console.error('[Router] Error loading data:', e)
})
}
next()
})
export default router
|