路由传参和路由守卫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由传参和路由守卫相关的知识,希望对你有一定的参考价值。

参考技术A 第一种情况就是以path形式

第二种情况就是以路由对象Object的形式

注意这里的name指的是具名路由,在路由列表中的配置如下

而WuHan则是这个路由要抵达的模板或者说页面,定义如下

注意由于在<router-link>中是通过query的形式区传递参数,所有在目的地页面中也只能采用query的形式获取参数。
也可以不采用query的方法,而采用params的形式传递参数

那么在在路由列表中的path中必须带上params传递过来的参数,否则在目的页面中无法获取参数

在目的页面中以params的形式获取参数对应的值

注意事项:不可以在<router-link>的路由对象中同时出现path和params,此时params作废。目的页面中获取不到参数。

推荐是name和params搭配,path和query搭配。最好时不用params而只是用query的形式传递参数以及获取参数,
因为采用params的方式传递参数,当你进入到目的页面后确实能够正确地获取参数,但是,当你刷新页面时,参数就会丢失。

所以推荐使用query地形式传递参数。

最后谈谈 route地区别。结论:没有任何关系。
router是实现路由跳转的, route。
或者是 route.params.city。也就是说, route作用在路由不同的阶段。

原文: https://blog.csdn.net/qq_23143555/article/details/81301873

正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。

记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察 $route 对象来应对这些变化,或使用 beforeRouteUpdate 的组件内守卫。

你可以使用 router.beforeEach 注册一个全局前置守卫:

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中。

每个守卫方法接收三个参数:

权限判断部分,如果没有权限就会跳转到登录页

以上是关于路由传参和路由守卫的主要内容,如果未能解决你的问题,请参考以下文章

Vue配置路由和传参方式及路由守卫!

vue中路由(router)的path与name传参和接收方式

路由的query传参

React路由传参

vue路由传参3种方式

VUE—路由拓展(导航传参)