全局路由守卫,独享路由守卫,组件内路由守卫
路由守卫:
1.作用:对路由进行权限控制
2.分类:全局路由守卫,独享路由守卫,组件内路由守卫
3.全局路由守卫:在router=>index.js
const routes =[ {path: '/test',name: 'test',component: () => import('../views/Test.vue'),meta:{isAuth:true,title:'测试'},}{path: '/testt',name: 'testt',component: () => import('../views/Testt.vue'),meta:{isAuth:false, //是否需要权限校验title:'新闻', //用于修改网页标题}},]// 全局前置路由守卫:初始化时执行、每一次路由切换之前调用
router.beforeEach((to,from,next)=>{console.log(to,from); //to 和 from都是对象// next() //没有next所有的路由跳转都无效if(to.meta.isAuth){ //判断是否需要鉴权,就不用to.path === '/home/news' || to.path === '/home/msg'if(localStorage.getItem('school')==='atguigu'){ //权限控制的具体规则next()}else{alert('暂无权限查看')}}else{next()}
})
// 全局后置路由守卫:初始化时执行、每一次路由切换之后调用
router.afterEach((to,from)=>{console.log(to,from);document.title = to.meta.title || "网页标题"
})
4.独享路由守卫:
{path: '/test',name: 'test',component: () => import('../views/Test.vue'),meta:{isAuth:true,title:'测试'},//独享路由守卫(注意:没有独享后置路由守卫,他可以配合全局后置路由守卫)beforeEnter: (to, from, next) => {if(to.meta.isAuth){ //判断是否需要鉴权if(localStorage.getItem('school')==='atguigu'){ //权限控制的具体规则next()}else{alert('暂无权限查看')}}else{next()}}},
5.组件内路由守卫:
组件内路由守卫和全局前置后置守卫还不一样,组件内守卫包括进入组件之前调用beforeRouteEnter和离开组件时调用beforeRouteLeave,这里的离开组件时并不是全局后置路由守卫,而是指,当前组件被切换到其他组件时。
router=>index.js
{path: '/void',name: 'void',component: () => import('../views/Void.vue'),meta:{isAuth:ture, //是否需要权限校验title:'新闻', //用于修改网页标题}},
views=>Void.vue
<script>
import Category from '@/components/Category.vue'export default {name:'Void',components:{ Category},//通过路由规则,进入改组件时被调用beforeRouteEnter(to,from,next){console.log('beforeRouteEnter',to,from);//to一定是本组件的路由if(to.meta.isAuth){ //判断是否需要鉴权,就不用to.path === '/home/news' || to.path === '/home/msg'if(localStorage.getItem('school')==='atguigu'){ //权限控制的具体规则next()}else{alert('暂无权限查看')}}else{next()}},//通过路由规则,离开该组件时被调用beforeRouteLeave(){console.log('beforeRouteLeave',to,from); //from一定是本组件的路由next()}}
</script>
注释:什么时通过路由规则:通过切换地址栏中的路径,而不是直接挂载到APP中首次加载时。
全局路由守卫,独享路由守卫,组件内路由守卫相关推荐
- 当使用this.$router.back()或者this.$router.go(-1)返回上一页时,搭配组件内路由守卫,屏幕闪烁和跳转页面错误问题
当使用this.$router.back()或者this.$router.go(-1)返回上一页时,搭配组件内路由守卫,屏幕闪烁和跳转页面错误问题 问题描述:项目有这个需求,当页面的输入框内容填完之后 ...
- vue路由跳转子组件_vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)...
模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const router = new VueRouter({ mode: 'history', // 两种类型hi ...
- Vue Router 组件内的守卫、导航解析流程
可以在路由组件内直接定义路由导航守卫(传递给路由配置的) 可用的配置 API beforeRouteEnter 在渲染该组件的对应路由被验证前调用. 此时不能获取组件实例 this , 因为当守卫执行 ...
- vue路由安全守卫 (组件内路由守卫)
组件内部的路由守卫 基本形式: export default {name: "Cart",beforeRouteEnter(to, from, next) {// 进入当前组件 当 ...
- Vue 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)详解
Vue 路由导航守卫(全局守卫.路由独享守卫.组件内守卫)详解: 路由守卫 官方解释 "导航"表示路由正在发生改变.正如其名,vue-router提供的导航守卫主要用来通过跳转或取 ...
- Vue中 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
Vue 路由导航守卫(全局守卫.路由独享守卫.组件内守卫)详解: 路由守卫 官方解释 "导航"表示路由正在发生改变.正如其名,vue-router提供的导航守卫主要用来通过跳转或取 ...
- Vue 路由 导航守卫(全局守卫、路由独享守卫、组件内守卫)
一.全局守卫 1. router.beforeEach((to,from,next)=>{}) 2. 回调函数中的参数,to:进入到哪个路由去,from:从哪个路由离开,next:函数,决定是否 ...
- 全局、独享、局部路由守卫
一.创建路由 //创建一个路由器,并暴露 export default new VueRouter({routes: [{path: '/about',component: About},{path: ...
- vue2进阶篇:vue-router之“使用独享路由守卫”
文章目录 10.13路由守卫 案例:将案例改为"使用独享路由守卫" 完整代码 本人其他相关文章链接 10.13路由守卫 注意点1: 前置路由守卫或者后置路由守卫中,to指代切换到哪 ...
最新文章
- 京东如何基于Vitess管理大型MySQL实例集群
- python24.dll_2_48_python24.dll
- php ajax 重复提交,ThinkPHP防止重复提交表单的方法实例分析
- 13个超棒的代码资源网站推荐
- 重新组织和重新生成索引(转载)
- android 显示Gift图片
- Tuple and Tie
- 【机器学习】算法调参
- 分量入度hdu 3836 Equivalent Sets
- Linux下监测GPU温度指令
- 阿里云眼中的“云网络3.0”:构建应用、云、边一体网络
- 数据建模软件Chiner,颜值与实用性并存
- 计算机的新技术未来发展趋势论文,计算机最新技术发展趋势毕业论文
- 【网络架构理论系列】简述分布式的定义、分类、技术发展历史进程
- Unity开发:一个PC项目转WebGL遇到的问题解决汇总
- 离线浏览工具webdup 可下载网站页面
- 1.(python)阿拉伯数字转中文大写
- ftp 发生意外错误 0x8ffe2740
- 抖音下载量超 Facebook;华为新款手机陷“绿屏”门;苹果又遭起诉 | 极客头条...
- 西雅图“货拉拉”融资$750万,“货运Uber”会成为下一个风口吗?