vue-router封装结构
index.js 文件
import Vue from 'vue'
import VueRouter from "vue-router"
import routes from './routes'
Vue.use(VueRouter)
// 解決编程式路由住同一地址跳转时会报错的恃观
const originalPush = VueRouter.prototype.push
const originalReplace = VueRouter.prototype.replace
// push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) {
return originalPush.call(this, location, onResolve, onReject)
} else {
return originalPush.call(this, location).catch(err => err)
}
}
// replace
VueRouter.prototype.replace = function push(location, onResolve, onReject) {
if (onResolve || onReject) {
return originalReplace.call(this, location, onResolve, onReject)
} else {
return originalReplace.call(this, location).catch(err => err)
}
}
const router = new VueRouter({
routes
})
export default router;
router文件
// 定义路由路径
const routes = [
{
path: '/Main',
component: () => import('@/views/Main.vue'),
//子路由设置
children: [
{
path: '/Home',
component: () => import('@/views/Home.vue')
},
{
path: '/Main',
component: () => import('@/views/Main.vue')
},
]
},
// 例
// {
// path: '/Usre',
// component: () => import('@/views/Usre.vue')
// },
// 重定向
{
path: '/',
redirect: '/Main'
}
]
export default routes;
在main.js 文件挂载
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import router from "./router/index.js"; //引入
Vue.config.productionTip = false
Vue.use(ElementUI);
new Vue({
router, //挂载
render: h => h(App),
}).$mount('#app')

浙公网安备 33010602011771号