vue3后台管理系统侧边导航栏路由的配置方式(两种)

文章介绍了在Vue应用中使用vue-router进行路由配置,包括两种方式:一是通过单个文件管理路由和权限,二是采用动态渲染的文件结构。同时涉及了登录状态下的路由导航和nprogress进度条的使用以及路由鉴权的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种(router新建一个文件夹)

index.js(这里个人中心(tabs)没有路由,里面有子路由)

// 引入路由
import { createRouter, createWebHistory } from 'vue-router'
// 引入仓库
import { useUserStore } from '@/stores'
// 创建路由
const router = createRouter({
  // 路由模式、基础路径
  history: createWebHistory(import.meta.env.BASE_URL),
  // 路由规则
  routes: [
    { path: '/login', component: () => import('@/views/login/LoginPage.vue') }, // 登录页,一级路由
    {
      path: '/', //登录成功默认跳转的页面,一级路由
      component: () => import('@/views/layout/LayoutContainer.vue'),
      redirect: '/article/manage', //路由重定向
      // 子路由
      children: [
        {
          // 文章管理页面路由
          path: '/article/manage',
          component: () => import('@/views/article/ArticleManage.vue')
        },
        // 文章分类页面路由
        {
          path: '/article/channel',
          component: () => import('@/views/article/ArticleChannel.vue')
        },
        // 个人中心基本资料路由
        {
          path: '/user/profile',
          component: () => import('@/views/user/UserProfile.vue')
        },
        // 个人中心更换头像路由
        {
          path: '/user/avatar',
          component: () => import('@/views/user/UserAvatar.vue')
        },
        // 个人中心重置密码路由
        {
          path: '/user/password',
          component: () => import('@/views/user/UserPassword.vue')
        }
      ]
    }
  ]
})
// 登录访问拦截
router.beforeEach((to) => {
  // 如果没有token,且返回的是非登录页,拦截到登录。其它情况正常放行
  const useStore = useUserStore()
  if (!useSto
### 后台管理系统侧边导航栏的实现方式UI设计 #### 设计理念 在现代Web开发中,侧边导航栏作为后台管理系统的重要组成部分,其设计理念通常围绕用户体验展开。它不仅需要具备良好的视觉效果,还需要支持高效的功能操作。例如,AmazeUI 提供了一种轻量级的方式来构建移动端友好的导航栏[^1],而 Element UI 则提供了更丰富的组件库来满足复杂的需求。 #### 技术实现 对于 Vue.js 开发者来说,Element UI 是一个非常流行的工具包,可用于快速创建美观且功能强大的界面。以下是基于 Vue 和 Element UI 的侧边导航栏实现的关键技术点: 1. **`<el-menu>` 组件的应用** `<el-menu>` 是 Element UI 中的核心组件之一,专门用于构建导航菜单。通过设置 `unique-opened="true"` 属性,可以让每次仅有一个子菜单保持打开状态,从而提升用户的专注度[^4]。 2. **动态路由绑定** 使用 `router="true"` 属性可以使 `<el-menu-item>` 支持通过 `index` 值定义路径的方式进行页面跳转。这种方式简化了传统手动处理点击事件的过程。 3. **自定义逻辑扩展** 在实际项目中,可能需要额外的功能支持,比如标签页管理。这可以通过 Vuex 来存储已打开的标签信息,并结合 `$store.dispatch(&#39;addTab&#39;, route)` 方法实现新增标签的行为。 #### 示例代码 以下是一个简单的 Vue + Element UI 实现侧边导航栏的例子: ```vue <template> <div class="sidebar-container"> <el-menu default-active="1" router unique-opened :collapse="isCollapse" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b"> <!-- 不含子项 --> <el-menu-item index="/dashboard"> <i class="el-icon-s-home"></i> <span slot="title">仪表盘</span> </el-menu-item> <!-- 含子项 --> <el-submenu index="2"> <template slot="title"> <i class="el-icon-document"></i> <span>内容管理</span> </template> <el-menu-item-group> <el-menu-item index="/articles">文章列表</el-menu-item> <el-menu-item index="/categories">分类管理</el-menu-item> </el-menu-item-group> </el-submenu> </el-menu> </div> </template> <script> export default { data() { return { isCollapse: false, // 控制菜单折叠状态 }; }, }; </script> <style scoped> .sidebar-container { height: 100%; } .el-menu-vertical-demo:not(.el-menu--collapse) { width: 200px; min-height: 400px; } </style> ``` #### UI设计建议 为了提高系统的易用性和一致性,可以从以下几个方面入手优化侧边导航栏的设计: - **颜色搭配**:采用深色调背景配浅色文字,形成鲜明对比,增强可读性[^3]。 - **图标辅助**:为每一项添加对应的字体图标(Font Awesome 或 Element 自带图标),使用户能更快识别功能入口。 - **响应式布局**:考虑不同屏幕尺寸下的显示效果,必要时提供收缩模式以便节省空间。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值