分享更有价值
被信任是一种快乐

vue的导航钩子有哪些及怎么使用

文章页正文上

本篇内容主要讲解“vue的导航钩子有哪些及怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的导航钩子有哪些及怎么使用”吧! vue的导航钩子有3种:1、全局守卫钩子,是指路由示例上直接操作的钩子函数,特点是所有路由配置的组件都会触发。2、路由独享守卫钩子,是指在单个路由配置的时候也可以设置的钩子函数,且只能在这个路由下起作用。3、局部守卫钩子,是指在组件内执行的钩子函数,类似于数组内的生命周期函数,相当于为配置路由的组件添加的生命周期钩子函数。导航钩子的作用vue-router提供的导航钩子主要用来拦截导航,让它完成跳转或取消。导航钩子的分类全局守卫路由独享守卫局部守卫是指路由示例上直接操作的钩子函数,特点是所有路由配置的组件都会触发。简单点说就是触发路由就会触发这些钩子函数。钩子函数执行顺序包括beforeEach、beforeResolve、afterEach三个。[beforeEach]:在路由跳转前触发,参数包括to,from,next三个,这个钩子作用主要是用于登录验证,也就是路由还没跳转提前告知,以免跳转了再通知就为时已晚。

router.beforeEachrouter.beforeResolverouter.afterEach
constrouter=newVueRouter({...});
router.beforeEach((to,from,next)=>{
//dosometing
});

to:代表要进入的目标,它是一个路由对象from:代表当前正要离开的路由,同样也是一个路由对象next:这是一个必须需要调用的方法,而具体的执行效果则依赖next方法调用的参数[beforeResolve]:这个钩子和beforeEach类似,也是路由跳转前触发,参数也是to,from,next三个,和beforeEach区别官方解释为:区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就会被调用。
即在beforeEach和组件内beforeRouteEnter之后,afterEach之后,afterEach之前调用。[afterEach]:和beforeEach相反,它是在路由跳转完成之后触发,参数包括to、from,没有了next,它发生在beforeEach和beforeResolve之后,beforeRouteEnter(足迹按内守卫)之前。

constrouter=newVueRouter({..免费云主机、域名.});
router.beforeEach((to,from,next)=>{
//dosometing
});
//全局后置钩子,后置钩子并没有next函数,也不会改变导航本身
router.afterEach((to,from)=>{
//dosometing
});

是指在单个路由配置的时候也可以设置的钩子函数,且只能在这个路由下起作用。其位置如下,也就是像File这样的组件都存在这样的钩子函数。目前它只有一个钩子函数beforeEnter。[beforeEnter]:和beforeEach完全相同,如果都设置则在beforeEach之后紧随执行,参数有to、from、next。

controuter=newVueRouter({
routes:[
{
path:'/file',
component:File,
beforeEnter:(to,from,next)=>{
//dosometing
}
}
]
});

是指在组件内执行的钩子函数,类似于数组内的生命周期函数,相当于为配置路由的组件添加的生命周期钩子函数。钩子函数按执行顺序包括beforeRouteEnter、beforeRouteUpdate(2.2新增)、beforeRouteLeave三个,执行位置如下:

constFile={
template:`
Thisisfile
`, beforeRouteEnter(to,from,next){ //dosometing //在渲染该组件的对应路由被confirm前调用 }, beforeRouteUpdate(to,from,next){ //dosometing //在当前路由改变,但是依然渲染该组件是调用 }, beforeRouteLeave(to,from,next){ //dosometing //导航离开该组件的对应路由时被调用 } }

路由跳转导航解析流程,当由A路由–>B路由的时候1、在A组件里调用离开守卫。 A组件中的beforeRouterLeave2、调用全局的beforeEach守卫。 router.beforeEach3、再执行B路由配置里调用beforeEnter。

routes:[
{
path:'/b',
component:B,
beforeEnter:(to,form,next)=>{
.....
}
}
]

4、再执行B组件的进入守卫。 B组件中beforeRouterEnter5、调用全局的beforeResolve守卫(2.5+)。 router.beforeResolve6、导航被确认。7、调用全局的afterEach钩子。 router.afterEach8、触发DOM更新。到此,相信大家对“vue的导航钩子有哪些及怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: CSS3的transition与transform属性怎么使用

这篇文章主要介绍“CSS3的transition与transform属性怎么使用”,在日常操作中,相信很多人在CSS3的transition与transform属性怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3的…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册