You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
804 B
30 lines
804 B
1 year ago
|
import Vue from 'vue'
|
||
|
import Router from 'vue-router'
|
||
|
import { constantRouterMap } from './router.config.js'
|
||
|
|
||
|
// hack router push callback
|
||
|
const originalPush = Router.prototype.push
|
||
|
Router.prototype.push = function push(location, onResolve, onReject) {
|
||
|
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
|
||
|
return originalPush.call(this, location).catch(err => err)
|
||
|
}
|
||
|
|
||
|
Vue.use(Router)
|
||
|
|
||
|
const createRouter = () =>
|
||
|
new Router({
|
||
|
scrollBehavior: () => ({ y: 0 }),
|
||
|
routes: constantRouterMap
|
||
|
})
|
||
|
|
||
|
const router = createRouter()
|
||
|
|
||
|
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
|
||
|
export function resetRouter() {
|
||
|
const newRouter = createRouter()
|
||
|
router.matcher = newRouter.matcher // reset router
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
export default router
|