router.js:全局守卫

import {createRouter,createWebHashHistory
} from 'vue-router'// 省略了routes 中的路由规则
const routes = [......
]const router = createRouter({history: createWebHashHistory(),routes
})// 全局守卫:登录拦截 本地没有存token,请重新登录
router.beforeEach((to, from, next) => {// 判断有没有登录if (!localStorage.getItem('token')) {if (to.name == "login") {next();} else {router.push('login')}} else {next();}
});export default router

路由独享守卫

{path: '/admin',name: 'admin',component: () => import('../views/mine/admin.vue'),//beforeEnter(to,form.next)=>{判断是否登陆代码},点击进入admin也面时,路由独享守卫启用beforeEnter:(to,form,next)=>{if (!localStorage.getItem('user')) {if (to.name == "login") {next();} else {router.push('login')}} else {next();}}
},

组件内守卫

有些时候我们需要知道是从那一个页面跳转过来的
然后做一些逻辑处理
比如说:
1、order.vue(订单) -> detail.vue(详情)
2、A.vue(商品详情) -> B.vue(确认订单) -> C.vue(支付成功后跳转订单详情) ->detail.vue(详情)
这个时候我们需要使用beforeRouteEnter 来解决页面返回问题

<template><div class="mine"><van-nav-bartitle="订单详情"left-text="返回"left-arrow@click-left="goBack"/><h1>从 {{data.routerIndex}} 页面来</h1></div>
</template>
<script>import { useRouter } from 'vue-router'import { reactive } from 'vue'export default {// 组件内守卫beforeRouteEnter:(to,form,next)=>{//to 到哪里去//form 从哪里来next( vm => {vm.data.routerIndex = form.name;})},setup(){const router = useRouter();var data = reactive({routerIndex:''})let goBack = () =>{// 如果从C.vue来,则返回router.go(-3),回到A.vue,否则正常返回上级页面if(data.routerIndex == 'C'){router.go(-3);}else{router.go(-1);}}return{data,goBack}}}
</script>

vue3:路由守卫(全局守卫、路由独享守卫、组件内守卫)相关推荐

  1. Vue 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)详解

    Vue 路由导航守卫(全局守卫.路由独享守卫.组件内守卫)详解: 路由守卫 官方解释 "导航"表示路由正在发生改变.正如其名,vue-router提供的导航守卫主要用来通过跳转或取 ...

  2. Vue中 路由导航守卫(全局守卫、路由独享守卫、组件内守卫)

    Vue 路由导航守卫(全局守卫.路由独享守卫.组件内守卫)详解: 路由守卫 官方解释 "导航"表示路由正在发生改变.正如其名,vue-router提供的导航守卫主要用来通过跳转或取 ...

  3. Vue 路由 导航守卫(全局守卫、路由独享守卫、组件内守卫)

    一.全局守卫 1. router.beforeEach((to,from,next)=>{}) 2. 回调函数中的参数,to:进入到哪个路由去,from:从哪个路由离开,next:函数,决定是否 ...

  4. 路由守卫(全局守卫,局部守卫,组件内守卫)

    路由守卫 作用:对路由进行权限控制 分类:全局守卫.独享守卫.组件内守卫 全局守卫: //全局前置守卫:初始化时执行.每次路由切换前执行 router.beforeEach((to,from,next ...

  5. 导航守卫之组件内守卫及后置钩子

    一.路由守卫 1.只有点击路由Admin时才会打印消息,并处于点击前的页面 2.只有点击路由Admin时才会打印消息,显示的是点击后的页面:但如果是next(false)则页面不会跳转 3.路由独享守 ...

  6. ts写法vue组件内守卫beforeRouteLeave不生效问题

    解决办法 需要加上下面一行代码 Component.registerHooks(['beforeRouteEnter', 'beforeRouteLeave', 'beforeRouteUpdate' ...

  7. 全局路由守卫,独享路由守卫,组件内路由守卫

    路由守卫: 1.作用:对路由进行权限控制 2.分类:全局路由守卫,独享路由守卫,组件内路由守卫 3.全局路由守卫:在router=>index.js const routes =[ {path: ...

  8. vue2路由手动创建二级路由路由传参路由守卫打包上线

    路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...

  9. 创建vue项目(四)路由相关知识、路由守卫、插槽、打包小细节

    一.路由相关点 1. 路由跳转传参以及接参 https://segmentfault.com/a/1190000012393587 方法一: (1) 参数配置: { path : 'xx/:参数变量' ...

最新文章

  1. 搬书匠 mysql_如何java进阶,我一直都有在学习,可是感觉好久都没进步了,心里好焦急?...
  2. 在leangoo中如何做好需求管理(研发效能)
  3. 关于脉冲信号发生器的一点心得
  4. python中文昵称-python实例pyspark以及python中文显示
  5. linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
  6. C语言简单题-求整数段和
  7. jQuery中的事件冒泡、事件捕获和事件追加引发的问题
  8. numpy——ravel()和flatten()
  9. [html] 要减少DOM的数量有什么办法吗?
  10. 【CodeForces - 278C 】Learning Languages(并查集,思维)
  11. 哈夫曼树编码与译码(完整C/C++实现代码)
  12. 清理垃圾代码bat_来买个小内存u盘么咯?盘内带电脑垃圾清理.bat那种丨heibai.org...
  13. c语言第一章节测试,计算机二级C语言教程章节测试:字符串
  14. 红帽linux企业版6的进程,红帽企业版 Linux 6 设备映射多路径
  15. [Win/Mac]下载工具推荐及使用
  16. hive sql正则表达式总结
  17. 深度——强化学习、深度森林
  18. python制作照片_python3一键排版证件照(一寸照、二寸照),附源代码
  19. 高级计算机使用教程,计算器高级计算使用方法
  20. 深度学习概念名词解释总结

热门文章

  1. 2019辽宁公务员考试行测常识大全:公务员常识40000问(五十三)
  2. 华为铁三角:什么是高层赞助人Sponsor制度
  3. pyqt-工具栏图标大小设置
  4. 基于SSM企业员工测评系统
  5. ESXi-6.7.0-20191204001-standard-RTL8111.iso集成第三方网卡驱动
  6. 【计算机系统结构】第7章 互联网络
  7. linux基本功系列之wc命令实战
  8. [Vcpkg] 通过vcpkg安装vtk[qt]教程
  9. Orace ODI 11g Cannot find a J2SE SDK installed a path
  10. 西北农林科技大学计算机学院保研,坐落在小镇上的985大学,学生家长纷纷嫌弃,考上的人却在偷笑...