多多OJ评测系统 在前端脚手架Vue-Cli中设置页面路由

发布于:2024-07-25 ⋅ 阅读:(141) ⋅ 点赞:(0)

目录

设置页面路由

我们把菜单上的路由改成读取路由文件

设置成export 导出路由

在刚刚的原始路由 index.ts中导入就行了

在这边引入我们的路由文件

我们之后点击菜单

我们的路由文件是这样的

但是没有跳转

写一下事件

接下来要同步路由到菜单项

自己定义监听函数

这样就能实现 在哪个页面刷新 还会停留在哪个页面


设置页面路由

我们把菜单上的路由改成读取路由文件

实现更通用的动态配置

其实vue - cli脚手架自动帮我们生成了一个路由文件

我们先把一部分给提出来

设置成export 导出路由

在刚刚的原始路由 index.ts中导入就行了

提取通用路由文件

是为了喂给菜单项

在这边引入我们的路由文件

细节

我们之后点击菜单

就能跳转到我们对应的路由文件上去

我们把菜单不写成死的

修改一下

   <a-menu-item v-for="item in routes" :key="item.path">
        {{ item.name }}
      </a-menu-item>
<script setup lang="ts">
import { routes } from "../router/routes";
</script>

我们的路由文件是这样的

import { RouteRecordRaw } from "vue-router";
import HomeView from "@/views/HomeView.vue";

export const routes: Array<RouteRecordRaw> = [
  {
    path: "/",
    name: "home",
    component: HomeView,
  },
  {
    path: "/about",
    name: "about",
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () =>
      import(/* webpackChunkName: "about" */ "../views/AboutView.vue"),
  },
];

展示

但是没有跳转

接下来我们要去绑定事件

写一下事件

const router = useRouter();

const doMenuClick = (key: string) => {
  router.push({
    path: key,
  });
};

接下来要同步路由到菜单项

就是每次刷新的时候 页面把路由信息同步到菜单项上

首先我们把路由不设置成默认的

自己定义监听函数

//默认主页
const selectedKeys = ref(["/"]);

//路由跳转时 更新选中的菜单项
router.afterEach((to, from, failture) => {
  selectedKeys.value = [to.path];
});

这样就能实现 在哪个页面刷新 还会停留在哪个页面

首先点击菜单项

跳转更新路由

更新路由后

同步去更新菜单栏的高亮状态