所有分类
  • 所有分类
  • 后端开发
Vue Router轻松搞定!动态路由+路由守卫,网上冲浪从此so easy~

Vue Router轻松搞定!动态路由+路由守卫,网上冲浪从此so easy~

本文将介绍如何实现动态路由和路由守卫,并给出具体的代码示例。首先,我们需要了解几个与路由守卫相关的概念:除了全局前置守卫外,我们还可以为某个路由单独配置守卫。路由守卫可以用来控制用户访问某个路由的权限,包括全局前置守卫、路由独享守卫和组件内

Vue Router轻松搞定!动态路由+路由守卫,网上冲浪从此so easy~

一、动态路由

动态路由就是按需设路由,网站跳转随你控制咯。Vue Router真心方便,设定起来so easy~

先装个Vue Router软件,用npm或yarn都行,简单方便就装到了项目里了。然后在src文件夹下搞个router文件夹,再建个index.js文件,把路由啥的填进去就ok了!

首先,得找个可以拿到动态路由设置的后台或者别的途径。接下来,在VueRouter里添加刚才得到的实时更新的路由设置就OK了!这样一来,你想要去的那个页面马上就能准确无误地出现喽~

照着这几个步骤做下去,动态路由的问题轻松搞定!网上冲浪再也不是难题了!

二、路由守卫

别以为Vue只能靠动态路由,其实它还隐藏着一个“路由守卫”这样牛逼的神器!它能轻松帮你控制浏览什么页面,比如有些内容得登录才能看到!

npm install vue-router

Vue Router有好多防护手段供咱们选择,比如全局防护、指定线路防护以及单个板块的本地防护,能让咱们随心所欲地管控页面权限和规范访问行为!

1.全局前置守卫

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
  routes: []
})

全站预设守卫,就是个无敌的路由器防护神器。咱们就在router/index.js文件里面添加它,然后配合使用router.beforeEach这个神奇功能,啥保护机制都能搞定,比如下载检测、账号认证、不让无权限访问之类的。

就拿全局前置守卫来说,它可以检查你是否已登录。如果没登,那就直接让你进入登录界面;但你要是已经上过线了?那些没法浏览的页面就会直接带你跳转到403页面咯。

2.路由独享守卫

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
  routes: []
})
// 获取动态路由配置
// 假设通过接口获取到的路由数据为response.data
const dynamicRoutes = response.data
// 添加动态路由
router.addRoutes(dynamicRoutes)
export default router

这个神器不止能防屏蔽,还让你可以给特殊的路由设置防屏蔽,这就厉害大了,比如你可以给某个网页搞个专门的限制啦之类的。

就是说,把/admin页的元数据设成meta.requireAdmin=true的话,就只能有权限的管理人员才能查看了嘛;再说了,整个站头添个检测程序,非管理人员进来立马让他们离开喔。

3.组件内的守卫

除了之前提到的那俩招儿以外,Vue Router这儿还有个嵌入式防护系统哟。用上这个,咱们就可以随心所欲地在某个组件里面操控导航和授权了

比如说,想在小部件App.vue那块搞点花样对,你试试在更新路由时,用下这个叫beforeRouteUpdate()的功能,肯定有你喜欢的新玩法。比如说,刷一下页面就能让它跳到最上面,是不是挺酷的?

不管是前哨站还是战士或者督导的帮忙,都能帮助咱们更好地掌控和保护应用里的各种操作授权,保证用户享受到的是满满的舒适和便捷!同时还能确保系统安全!

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
  routes: []
})
// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 判断用户是否登录
  const isLogin = localStorage.getItem('isLogin')
  // 如果用户未登录,并且访问的页面需要登录权限,则跳转至登录页
  if (!isLogin && to.meta.requireAuth) {
    next('/login')
  } else {
    next()
  }
})
export default router

三、实例演示

看不懂Vue的动态路由和路由守卫是啥?来看这个简单的例子,马上明白!

咱这有个后台系统,首页就把各类商品摆在那儿。有些内容藏着掖着不让你瞧见?别急,那可是根据你的身份和权限显示的!

哈喽~说起动动态路由,我得告诉你个好消息:只要一登上账户,就能按照后台传过来的提示,选不同类型商品专属详细路径!

首先,我们做了个路由器保护软件,就是怕管理员和用户乱弄:管理员有权限看我这里的所有商品信息,还能随意更改或删除它们;但普通用户就只能浏览那些简单的商品信息咯。

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
  routes: [
    {
      path: '/admin',
      component: AdminComponent,
      meta: { requireAdmin: true } // 设置路由元信息
    }
  ]
})
export default router

看看例子,你会发现怎样巧妙搭档动态路由和路由守护者来搭建稳定靠谱的前端架构!

四、总结与展望

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
  routes: [
    {
      path: '/admin',
      component: AdminComponent,
      meta: { requireAdmin: true } // 设置路由元信息
    }
  ]
})
// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 判断用户是否为管理员
  const isAdmin = localStorage.getItem('isAdmin')
  // 如果用户不是管理员,并且访问的页面需要管理员权限,则跳转至首页
  if (!isAdmin && to.meta.requireAdmin) {
    next('/')
  } else {
    next()
  }
})
export default router

看这儿,我告诉你如何用Vue来实现动态路由和路由守卫。不仅仅是理论知识,还有实战案例,肯定好玩又实用!动态路由,网页切换就像跳舞一样流畅自如;路由守卫更炫酷,能限制用户访问内容,可牛了!

看来前端技术越来越牛了,Vue框架功能也强得不敢相信,应付各种复杂需求都是小菜一碟!

希望这篇文章能让你搞明白Vue里的动态路由和路由守护器是啥以及怎么用,项目里会更加轻松。

你对Vue里的动态路由和路由守护者了解多少?有啥看法就跟咱们说说呗!

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const router = new Router({
  routes: []
})
export default router

原文链接:https://www.icz.com/technicalinformation/web/2024/04/12701.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?