Vue2的路由配置便捷方式

文章介绍了如何在Vue项目中使用更简洁的方式配置路由,包括引入组件的箭头函数导入,以及使用便捷的子路由和白名单机制,以提高代码质量和可读性。

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

原本我们的路由配置是在router/index.js里面配置如图

图中我们需要引入 import xx from '@/views/xx' 需要的页面都要这样引入

还有白名单的方法也可以简化

import VueRouter from 'vue-router'
import Vue from 'vue'

import Layout from '@/views/layout'
import Login from '@/views/login'
import Dashboard from '@/views/dashboard'
import Article from '@/views/article'

Vue.use(VueRouter)

//路由配置
const router = new VueRouter({
  routes: [
    { path: '/login', component: Login },
    {
      path: '/',
      component: Layout,
      redirect: '/dashboard',
      children: [
        { path: 'dashboard', component: Dashboard },
        { path: 'article', component: Article }
      ]
    }
  ]
})

//白名单

 const whiteList = ['/login']
 router.beforeEach((to, next, from) => {
   const token = store.state.user.token
  if (token) {
     next()
     return
   }
   if (whiteList.includes(to.path)) {
     next()
     return
   }
   next('/login')
 })

export default router

 如图路由的便捷方式就不用在引入了,直接在后面用箭头函数写就可以了,这样还精简了我们的代码质量看着也很舒服!!!

import store from '@/store'
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

//路由配置便捷方式

const routes = [
  { path: '/login', component: () => import('@/views/Login') },
  {
    // path: '/',
    // redirect: '/deshoard',
    path: '/',
    redirect: '/deshoard',
    component: () => import('@/views/Layout'),
    children: [
      // 子路由必须以路由展开 保证先渲染父路由 父路由的基础上展开子路由
      // 子路由不以/开头被认为简写 那么就会主动拼接 父路由/
      { path: 'deshoard', component: () => import('@/views/Deshoard') },
      { path: 'article', component: () => import('@/views/Article') }
      // { path: '/home/deshoard', component: () => import('@/views/Deshoard') },
      // { path: '/home/article', component: () => import('@/views/Article') }

    ]
  }
]

const router = new VueRouter({
  routes
})


//白名单的便捷方式

const whiteList = ['/login']
router.beforeEach((to, fron, next) => {
  if (store.state.user.token) return next()
  if (whiteList.includes(to.path)) return next()
  next('/login')
})

export default router

### Vue2 中实现路由跳转的方法 在 Vue 2 中,可以通过多种方式实现路由跳转。以下是详细的说明以及示例代码。 #### 方法一:声明式导航 通过 `<router-link>` 组件来完成页面之间的跳转是最常见的方法之一。`<router-link>` 是 Vue Router 提供的一个内置组件,用于定义导航链接[^1]。 ```html <!-- 使用 to 属性指定目标地址 --> <router-link to="/home">去首页</router-link> ``` 这种方式简单直观,适合静态路径的场景。 --- #### 方法二:编程式导航 除了使用 `<router-link>` 外,还可以利用 `this.$router.push()` 或者 `this.$router.replace()` 来动态控制路由跳转[^4]。 ##### 示例代码: ```javascript // 跳转到 /about 页面 this.$router.push({ path: '/about' }); // 带参数的跳转 this.$router.push({ name: 'user', // 对应路由名称 params: { userId: 123 } // 动态参数 }); // 替代当前历史记录条目 (不会留下返回记录) this.$router.replace('/login'); ``` 此方法适用于需要根据逻辑条件决定跳转的情况,比如登录验证成功后自动重定向至特定页面。 --- #### 方法三:命名视图与嵌套路由支持下的复杂跳转 当项目结构较为复杂时,可能涉及多个子模块间的切换,则需借助于嵌套或者平行布局的概念来进行更精细的操作[^3]。 假设存在如下配置: ```javascript const routes = [ { path: '/', component: Layout, children: [ { path: '', redirect: 'dashboard' }, { path: 'dashboard', component: Dashboard } ] } ]; ``` 此时如果想从某个地方直接进入 dashboard ,可以直接写成这样: ```javascript this.$router.push({path:'/dashboard'}); ``` --- ### 总结 无论是简单的单页应用还是复杂的多级菜单体系,在 Vue2 的生态系统里都有成熟的解决方案可供选用。上述三种主要手段各有侧重,开发者可以根据实际需求灵活运用它们构建高效便捷的应用程序体验.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值