VUE CLI 项目
router.js
import Vue from "vue" ;
import Router from "vue-router" ;
import base from "@/view/404/404.vue" ;
const originalPush = Router . prototype. push
Router . prototype. push = function push ( location ) {
return originalPush . call ( this , location) . catch ( err => err)
}
Vue. use ( Router) ;
const router = new Router ( {
mode : "hash" ,
routes : [
{
path : "/" ,
name : "Login" ,
component : ( ) => import ( "@/view/login.vue" ) ,
} ,
{
path : "/Layout" ,
name : "Layout" ,
component : ( ) => import ( "@/view/layout.vue" )
} ,
{
path : '/404' ,
name : 'base' ,
component : base
}
] ,
} ) ;
export default router;
main.js
var getRouter
router. beforeEach ( ( to, from, next ) => {
if ( ! getRouter) {
if ( to. path == '/' || to. path == '/Layout' ) {
if ( to. path == "/" ) {
Vue . prototype. nativeplacestore. clear ( )
}
next ( )
} else {
if ( ! Vue . prototype. nativeplacestore. get ( "uu" ) ) {
next ( )
} else {
getRouter = Vue . prototype. nativeplacestore. get ( "uu" )
getRouter. map ( x => {
router. addRoute ( "Layout" , {
path : "/Layout/" + x. path,
name : "Path" + x. path,
component : ( ) => import ( "@/view/1.vue" ) ,
children : [ ]
} )
return {
path : "/Layout/" + x. path,
name : "Path" + x. path,
component : ( ) => import ( "@/view/1.vue" ) , } }
)
if ( Vue . prototype. nativeplacestore. get ( "WenShiDu" ) ) {
router. addRoute ( "Layout" , {
path : "/Layout/WenShiDu" ,
name : "WenShiDu" ,
component : ( ) => import ( "@/view/2.vue" ) ,
children : [ ]
} )
}
router. addRoute (
{
path : '*' ,
redirect : "/404" ,
}
)
next ( {
... to,
replace : true
} )
}
}
} else {
next ( )
}
} )