Vue3中router最佳封装落地

embedded/2025/3/30 2:40:43/

文章目录

  • 前言
  • 一、拆分路由文件夹?
  • 二、main.ts中注册路由
  • 总结


前言

router在使用过程中如果我们直接在一个文件的一个数组中配置,最后路由越来越多会导致不易管理,我们可以将一个页面的路由配置在一个数组中最后统一导入,这样就会方便很多。
一个好的项目肯定少不了模块的封装,下面我们就封装一个router路由文件,方便后续项目的维护。
本文采用的是vue3+vite+ts+vue-router


一、拆分路由文件夹?

我们将不同页面的路由放置在/src/router/modules/login.ts
在这里插入图片描述
每个模块文件里面编写路由规则
在这里插入图片描述

然后我们在/src/router/index.ts导入这个路由

import { RouteRecordRaw, createRouter, createWebHashHistory } from 'vue-router';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';export const aboutRouter = {path: '/about',name: 'about',component: () => import('@/views/about/index.vue'),meta: {},children: []
} as RouteRecordRaw;const modules: Record<string, any> = import.meta.glob(['./modules/*.ts'], {eager: true
});
// 配置路由
const routes: Array<RouteRecordRaw> = [];
Object.keys(modules).forEach((key) => {const module = modules[key].default;routes.push(module);
});
routes.push(aboutRouter);const router = createRouter({history: createWebHashHistory(),routes
});const noStatusPage = ['/login', '/about'];
router.beforeEach(async (_to, _from, next) => {// 路由动画加载插件NProgress.start();const token = sessionStorage.getItem('userInfo');const userIsLogin = token ? true : false;if (userIsLogin || noStatusPage.includes(_to.path)) {next();} else {next('/login');}
});
router.afterEach((_to) => {NProgress.done();
});
export default router;

ts_68">二、main.ts中注册路由

在这里插入图片描述

总结

这样我们就完成了router的封装,方面以后维护。

文章来源:https://blog.csdn.net/qq_48076747/article/details/146437280
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/embedded/176658.html

相关文章

eclipse [jvm memory monitor] SHOW_MEMORY_MONITOR=true

eclipse虚拟机内存监控设置SHOW_MEMORY_MONITORtrue D:\eclipse-jee-oxygen-2-win32-x86_64\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings org.eclipse.ui.prefs (文件比较多&#xff0c;别找错了&#xff09; SHOW_MEMORY_MONITORtrue 重启 -xms 1024…

STL性能优化方法

STL&#xff08;Standard Template Library&#xff09;性能优化实战&#xff0c;涉及数据结构选择、内存管理、算法优化等多个方面。以下详细讲解STL性能优化方法&#xff0c;给出实践建议和典型场景&#xff1a; &#x1f4cc; 一、STL性能问题分析 STL性能瓶颈通常包括&…

k8s集群添加一个新GPU节点

前提 现在是已经搭建好一个GPU集群&#xff0c;需要添加一个新的节点&#xff08;3090卡&#xff09;&#xff0c;用来分担工作&#xff0c;大致可以分为以下几个部分&#xff1a; 1&#xff0c;安装GPU驱动2&#xff0c;安装docker3&#xff0c;安装cri-dockerd4&#xff0c…

操作系统导论——第13章 抽象:地址空间

一、早期系统 从内存来看&#xff0c;早期的机器并没有提供多少抽象给用户。基本上&#xff0c;机器的物理内存如图13.1所示 操作系统曾经是一组函数&#xff08;实际上是一个库&#xff09;&#xff0c;在内存中&#xff08;在本例中&#xff0c;从物理地址0开始&#xff09;&…

Postman高级功能深度解析:Mock Server与自动化监控——构建高效API测试与监控体系

引言&#xff1a;Postman在API开发中的核心价值 在数字化时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为系统间交互的“神经网络”&#xff0c;其质量直接影响用户体验与业务连续性。然而&#xff0c;传统API测试面临两大挑战&#xff1a; 开发阶段依赖…

网络安全威胁与防护措施(下)

8. 恶意软件&#xff08;Malware&#xff09; **恶意软件&#xff08;Malware&#xff0c;Malicious Software&#xff09;**是指旨在通过破坏、破坏或未经授权访问计算机系统、网络或设备的程序或代码。恶意软件通常用于窃取敏感信息、破坏系统、窃取资源、干扰正常操作&…

c库、POSIX库、C++库、boost库之间的区别和联系

文章目录 一、区别1. 定义和来源2. 功能范围3. 可移植性4. 语言支持5. 维护和更新 二、联系1. 相互补充2. 部分功能重叠3. 共同促进编程发展4. 代码兼容性 三、总结 一、区别 1. 定义和来源 C 库函数&#xff1a;由 ANSI C 和 ISO C 标准定义&#xff0c;是 C 语言编程的基础…

3.22刷题

B3763 [语言月赛202305] 团体程序设计天梯赛 - 洛谷 #include<bits/stdc.h> using namespace std; int main(){int x,jichu0,jinjie0,dingbu0;for(int i0;i<8;i){cin>>x;jichux;}if(jichu>80){for(int i0;i<4;i){cin>>x;jinjiex;}if(jinjie>40)…