Vue中的路由守卫

]

},

{

path: ‘/about’,

name: ‘aboutName’,

component: About,

children: [{ //通过children配置子级路由

path: ‘news’, //此处不要写成:/news

component: News

}]

}

]

const router = new VueRouter({

routes

})

//全局前置路由守卫—初始化的时候被调用、每次路由切换的时候被调用

router.beforeEach((to, from, next) => {

console.log(to);

//这里是一个简单的例子

//即判断用户是否进入了需要鉴权的路由下(这里距离为news和message)

if (to.path == ‘/home/message’ || to.path === ‘/about/news’) {

//如果进入了,那就判断本地是否缓存了信息(这里模拟登录的token)

if (localStorage.getItem(‘name’) === ‘haungzhizhen’) {

next()

}

}else{

//如果不是,则直接放心即可

next()

}

})

export default router

上面这个例子有个不足之处是,当需要鉴权的路由很多的时候,那你需要一个一个的去判断?那大可不必,因此这里引入路由的另一属性,即meta,可以在每个路由中进行配置,一般用来标识具有标识性的属性,可以用力啊同意判断,具体如下:

//使用meta

router.beforeEach((to, from, next) => {

console.log(to);

if (to.meta.isAuth) {//判断是否需要鉴权

if (localStorage.getItem(‘name’) === ‘haungzhizhen’) {

next()

}

} else {

next()

}

})

1.2 全局后置路由守卫

============

//全局后置路由守卫—初始化的时候被调用、每次路由切换之后被调用

router.afterEach((to, from) => {

if (to.meta.title) {

document.title = to.meta.title || ‘路由跳转举例’//修改网页的title

}else{

document.title = ‘vue_test’

}

})

1.3 整合


2. 路由独享的守卫

===========

你可以在路由配置直接定义beforeEnter守卫,这些参数与全局前置守卫的方法参数是一样的

const router = new VueRouter({

routes: [

{

path: ‘/foo’,

component: Foo,

beforeEnter: (to, from, next) => {

// …

}

}

]

})

3.组件内的守卫

========

最后,你可以在路由组件内直接定义一下路由导航守卫:

  • beforeRouterEnter

  • beforeRouterUpdate

  • beforeRouterLeave

const Foo = {

template: ...,

beforeRouteEnter(to, from, next) {

// 在渲染该组件的对应路由被 confirm 前调用

// 不!能!获取组件实例 this

// 因为当守卫执行前,组件实例还没被创建

},

beforeRouteUpdate(to, from, next) {

// 在当前路由改变,但是该组件被复用时调用

// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

资料领取方式:戳这里免费获取

ascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

资料领取方式:戳这里免费获取

html5

提供的引用内容未提及在Vue中去掉路由守卫的方法。不过,一般来说,在Vue里去掉路由守卫可按以下思路操作: ### 全局路由守卫移除 全局路由守卫通常在路由实例上使用 `router.beforeEach`、`router.afterEach` 等方法来设置。要移除它们,可在设置守卫时保存其返回的移除函数,之后调用该函数即可移除。 ```javascript // 设置全局前置守卫并保存移除函数 const removeBeforeEach = router.beforeEach((to, from, next) => { // 守卫逻辑 next(); }); // 移除全局前置守卫 removeBeforeEach(); ``` ### 组件级路由守卫移除 组件级路由守卫是在组件内部定义的钩子函数,若要移除,直接从组件中删除对应的钩子函数即可。 ```vue <template> <!-- 组件模板 --> </template> <script> export default { // 删除以下组件级路由守卫 // beforeRouteEnter(to, from, next) { // // 守卫逻辑 // next(); // }, // beforeRouteUpdate(to, from, next) { // // 守卫逻辑 // next(); // }, // beforeRouteLeave(to, from, next) { // // 守卫逻辑 // next(); // }, data() { return { // 组件数据 }; }, methods: { // 组件方法 } }; </script> ``` ### 独享路由守卫移除 独享路由守卫是在路由配置中定义的,要移除它,直接从路由配置里删除对应的 `beforeEnter` 函数。 ```javascript const routes = [ { path: '/', name: 'Home', component: Home, // 删除以下独享路由守卫 // beforeEnter(to, from, next) { // // 守卫逻辑 // next(); // } } ]; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值