32 lines
665 B
JavaScript
32 lines
665 B
JavaScript
import { useScrollPosition } from '@/stores/scroll-position'
|
|
import { createRouter, createWebHistory } from 'vue-router'
|
|
import routes from './routes'
|
|
|
|
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
routes: routes,
|
|
})
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
to.meta.from = {
|
|
name: from.name,
|
|
params: from.params,
|
|
}
|
|
|
|
if (from.meta.keepAlive) {
|
|
const { setPosition } = useScrollPosition()
|
|
const scrollTop = document.documentElement.scrollTop;
|
|
setPosition(from.fullPath, scrollTop);
|
|
}
|
|
|
|
next()
|
|
})
|
|
|
|
router.afterEach((to, from) => {
|
|
document.title = to.meta.title || ''
|
|
})
|
|
|
|
export default router
|