最近搞vue项目的时候,被页面跳转拦截这个问题难住了,不过最后还是解决了,给大家分享下我的方法,说不定能帮到你们!
安装并配置Vue路由
直接装上vue-route就好,只需在命令行里输入”npm install vue-router”,然后将其放在主文件`main.js`里面。官网的教程超级详细,跟着做肯定没错!
创建拦截器
哈喽!我们要搞个拦截器来处理网页的拦截和跳转。别担心,Vue里的”导航守护者”就很给力。它主要分成3种:全局的前后置守护者,以及特定路由的守护者。我就是用全局的前置守护者解决网页拦截的问题,像是看看用户是不是已经登陆,有没有权限什么的。
配置路由规则
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) // 定义路由规则 const routes = [ // 路由配置 ] // 创建路由实例 const router = new VueRouter({ routes }) // 将路由实例注入根Vue实例中 new Vue({ router, render: h => h(App) }).$mount('#app')
路由器设置里面有个小秘密。就是把“meta”标签贴在你不想让别人访问或者需要转向的网页上,这样电脑程序就会明白是不是需要登录了。这个小技巧可重要,能帮助路由器找到正确的路。
页面跳转和拦截处理
搞定这个设置以后,每次进需要登录的网站它会自己弹出来登录窗口哦~只要输入你的账号密码,就可以直接进入想要浏览的页面了!vue的路由功能真的太好用了!页面跳转速度飞快,那些烦人的拦截跳转问题也都能轻松应对。
代码示例
我在这里附上了一段代码示例,供大家参考:
javascript 注意看路由别把周围忽略!(弄清去向,到来地点,接下来咋办)router.beforeEach((to, from, next) => { // 判断是否需要登录态 if (to.meta.requireAuth) { // 判断是否已登录 if (isLogin()) { // 已登录,可以继续跳转 next() } else { // 未登录,跳转到登录页 next('/login') } } else { // 不需要登录态,直接跳转 next() } })先登录认证下?要没登录就玩不转!
next('/login')
} else {const routes = [ { path: '/login', component: Login }, { path: '/home', component: Home, meta: { requireAuth: true } // 需要登录态 }, { path: '/about', component: About, meta: { requireAuth: false } // 不需要登录态 } ]next()
}
})就是这么个小玩意儿,看你登入成功没。还没?快搞定虽简单但真好用。有这神器我省心多了!
总结和展望
methods: { login() { // 登录操作 // ... // 登录成功后,跳转到目标页面 this.$router.push('/home') } }别担心网页堵塞或跳来跳去,Vue router的导航守卫功能帮你轻松搞定!只需看下 `meta` 信息,就能知道要不要登录,权限问题瞬间迎刃而解。快试试这招,保证对你用Vue做项目时处理页面阻塞和转换大有助益~
好,咱们来聊聊你们在做 Vue 项目时有没有碰到什么难题呀?又是如何解决的?赶快来下面评论区说说看~别忘了给楼里点赞,把这篇关于 Vue 路由用途的文章分享给你的朋友们瞧瞧哈~
原文链接:https://www.icz.com/technicalinformation/web/2024/06/17052.html,转载请注明出处~~~
评论0