当前位置: 首页 > news >正文

vue3中,route4,获取当前页面路由的问题

首先应用场景如下:

在main.js里面,引入的是路由的配置文件,如下:

import {router} from '@/router';
app.use(router);

路由配置文件router.js如下:

import { createRouter, createWebHistory } from 'vue-router';
import Page1 from '../views/Page1.vue';
import Page2 from '../views/Page2.vue';

const routes = [
  {
   path:'/',redirect:'/login',component:()=>('@/views/index'),
   children:[
    path:'page',redirect:'/a/b',
    children:[{},{}] 
  ]
  },
  {
    path: '/page1',
    name: 'login',
    component: Page1
  },
  {
    path: '/page2',
    name: 'Page2',
    component: Page2
  }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;
router.beforeEach((to,from,next))=>{
  const token = getToken('token');
  if(to.name!=='login' && !token){
  next({name:'login'})

  }else{next()}
}

引用组件如下:

<template>
  <button @click="handleLogout">退出</button>
</template>

<script setup>
import {router} from '@/router';
//!!!注意,此时,useRoute是不能用的,因为引入顺序的问题。需要先引入下面一行,再引入上面一行。
import { useRoute } from 'vue-router';

// 获取当前路由对象
const route = useRoute();

const handleLogout = () => {
  const currentPath = route.path;

  switch (currentPath) {
    case '/page1':
      // 在 page1 页面点击退出按钮时的操作
      console.log('在 page1 页面执行退出操作');
      // 可以添加具体的退出逻辑,比如清除缓存、跳转到登录页等
      break;
    case '/page2':
      // 在 page2 页面点击退出按钮时的操作
      console.log('在 page2 页面执行退出操作');
      // 可以添加不同的退出逻辑
      break;
    default:
      // 其他页面的默认退出操作
      console.log('在其他页面执行退出操作');
      break;
  }
};
</script>

总之注意引入顺序,应先引入useRoute再引入router.js。要不然获取不到本页路径。

http://www.dtcms.com/a/94954.html

相关文章:

  • Java面试黄金宝典14
  • 什么时候用到 JVM 调优,调优哪些参数
  • 数字图像处理 -- 霍夫曼编码(无损压缩)练习
  • 【区块链安全 | 第七篇】EVM概念详解
  • 排序--快排--非递归法
  • CSS3学习教程,从入门到精通,CSS3 元素的浮动与定位语法知识点及案例代码(17)
  • nuxt3 seo优化
  • WPF中的Adorner基础用法详解与实例
  • Java中清空集合列表元素有哪些方式
  • 【Elasticsearch基础】基本核心概念介绍
  • [python]基于yolov8实现热力图可视化支持图像视频和摄像头检测
  • kubernet在prometheus+alertmanager+grafana框架下新增部署loki模块
  • 【进阶】vscode 中使用 cmake 编译调试 C++ 工程
  • uni-app页面怎么设计更美观
  • 快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)
  • 基于模糊PID算法的智能洗衣机控制器设计,实现洗衣过程智能化,能够监测衣物重量和污泥,实现洗涤时间、洗衣液投放的智能控制
  • 解析 ID 数组传参的解决方案:基于 Axios 的实现
  • leetcode40-组合总和II
  • Linux下的socket演示程序3(udp)
  • C++调用Openssl 报OPENSSL_Uplink(503EE220,08): no OPENSSL_Applink
  • CentOS 8 Stream 配置在线yum源参考 —— 筑梦之路
  • 力扣DAY30 | 热100 | 两两交换链表中的节点
  • LeetCode hot 100 每日一题(17)——160.相交链表
  • 算法--动态规划
  • 给聊天机器人装“短期记忆“:Flask版实现指南
  • Dubbo(18)Dubbo的SPI机制是什么?
  • Rocky linux部署DNS服务
  • GPU服务器集群网络规划方案
  • 阿里云数据学习20250327
  • 面试八股文--框架篇(SSM)