# 前端路由小案例-后台管理系统案例 **Repository Path**: xingyueqianduan/qianduanrouter ## Basic Information - **Project Name**: 前端路由小案例-后台管理系统案例 - **Description**: 前端路由小案例-后台管理系统案例。案例用到的知识点:命名路由,路由重定向,导航守卫,嵌套路由,动态路由匹配,编程式导航。用来复习前端路由。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2022-08-05 - **Last Updated**: 2023-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue ## README # router-admin ## Project setup ``` npm install ``` ### Compiles and hot-reloads for development ``` npm run serve ``` ### Compiles and minifies for production ``` npm run build ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/). # 前端路由小案例(后台管理小案例) ## 1 项目整体功能演示 **进入网站自动进入登录页面:** ![image-20220805200948154](https://img-blog.csdnimg.cn/b4d8929caf9741e28215aa498f7cc410.png) **登录成功自动存储token,然后跳转到登录成功页面:** ![image-20220805201232115](https://img-blog.csdnimg.cn/0768e82111794c14adb04d67cde98501.png) **左边功能栏可以切换:** ![image-20220805201304315](https://img-blog.csdnimg.cn/cda50c4da41840189a850913b14b45d9.png) **点击用户管理的操作可以跳转到用户详情页面,并却可以回退到上一步:** ![image-20220805201404025](https://img-blog.csdnimg.cn/b0e6876a162d47498ce6d320c38a55c4.png) **完了之后可以退出登录,并清除token,然后跳转到登录页面。** ## 2 **案例用到的知识点** - 命名路由 - 路由重定向 - 导航守卫 - 嵌套路由 - 动态路由匹配 - 编程式导航 ## 3 主要代码 ##### 3.1 app.vue ```vue ``` ##### 3.2 MyHome.vue ```vue ``` ##### 3.3 MyLogin.vue ```vue ``` ##### 3.4 MyAside.vue ```vue ``` ##### 3.5 MyHeader.vue ```vue ``` ##### 3.6 MyUsers.vue ```vue ``` ##### 3.7 router/index.js (路由模块代码) ```js import Vue from 'vue' import VueRouter from 'vue-router' //导入前置路由地址数组 import Arrrouter from '@/router/router.js' import Login from '@/components/MyLogin.vue' import Home from '@/components/MyHome.vue' import Users from '@/components/menus/MyUsers.vue' import Rights from '@/components/menus/MyRights.vue' import Goods from '@/components/menus/MyGoods.vue' import Orders from '@/components/menus/MyOrders.vue' import Setting from '@/components/menus/MySettings.vue' import UserDetail from '@/components/user/MyUserDetail.vue' Vue.use(VueRouter) const router = new VueRouter({ routes:[ //路由重定向 { path:'/',redirect:'/login'}, //登录路由规则 { path:'/login',component:Login}, { path:'/home', component:Home, //路由重定向 redirect:'/home/users', children:[ //路由重定向 // { path:'/',redirect:'users' }, //子路由规则 { path:'users',component:Users }, { path:'rights',component:Rights }, { path:'goods',component:Goods }, { path:'orders',component:Orders }, { path:'setting',component:Setting }, //用户详情页路由规则 { path:'userinfo/:id',component:UserDetail,props:true } ] }, ] }) // 全局前置守卫 router.beforeEach((to,from,next)=>{ if(Arrrouter.indexOf(to.path) != -1){ const token = localStorage.getItem('token') if(token){ next() }else{ next('/login') } }else{ next() } }) export default router ``` ##### 3.8 router (全局守卫路由路径) ```js export default ['/home','/home/users','/home/orders','/home/rights','/home/setting'] ```