做高清视频的网站新浪网页打不开
- 作者: 五速梦信息网
- 时间: 2026年04月18日 10:02
当前位置: 首页 > news >正文
做高清视频的网站,新浪网页打不开,成都公司网站开发,搭建一个平台要多少钱本章分析vue路由目录文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等功能。感兴趣的小伙伴可以访问源码点个赞…本章分析vue路由目录文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等功能。感兴趣的小伙伴可以访问源码点个赞 地址 先简单看一下目录结构 一个清晰、有序的项目结构对于项目的可维护性和可扩展性至关重要 ├─ .husky # husky 配置文件 ├─ .vscode # VSCode 推荐配置 ├─ build # Vite 配置项 ├─ public # 静态资源文件该文件夹不会被打包 ├─ src │ ├─ api # API 接口管理 │ ├─ assets # 静态资源文件 │ ├─ components # 全局组件 │ ├─ config # 全局配置项 │ ├─ directives # 全局指令文件 │ ├─ enums # 项目常用枚举 │ ├─ hooks # 常用 Hooks 封装 │ ├─ languages # 语言国际化 i18n │ ├─ layouts # 框架布局模块 │ ├─ routers # 路由管理 │ ├─ stores # pinia store │ ├─ styles # 全局样式文件 │ ├─ typings # 全局 ts 声明 │ ├─ utils # 常用工具库 │ ├─ views # 项目所有页面 │ ├─ App.vue # 项目主组件 │ ├─ main.ts # 项目入口文件 │ └─ vite-env.d.ts # 指定 ts 识别 vue ├─ .editorconfig # 统一不同编辑器的编码风格 ├─ .env # vite 常用配置 ├─ .env.development # 开发环境配置 ├─ .env.production # 生产环境配置 ├─ .env.test # 测试环境配置 ├─ .eslintignore # 忽略 Eslint 校验 ├─ .eslintrc.cjs # Eslint 校验配置文件 ├─ .gitignore # 忽略 git 提交 ├─ .prettierignore # 忽略 Prettier 格式化 ├─ .prettierrc.cjs # Prettier 格式化配置 ├─ .stylelintignore # 忽略 stylelint 格式化 ├─ .stylelintrc.cjs # stylelint 样式格式化配置 ├─ CHANGELOG.md # 项目更新日志 ├─ commitlint.config.cjs # git 提交规范配置 ├─ index.html # 入口 html ├─ LICENSE # 开源协议文件 ├─ lint-staged.config.cjs # lint-staged 配置文件 ├─ package-lock.json # 依赖包包版本锁 ├─ package.json # 依赖包管理 ├─ postcss.config.cjs # postcss 配置 ├─ README.md # README 介绍 ├─ tsconfig.json # typescript 全局配置 └─ vite.config.ts # vite 全局配置文件 ————————————————对目录进行详细的拆解分析 项目根目录 配置文件 .husky包含Husky的配置文件用于设置Git钩子如pre-commit等以自动化地执行代码格式化、测试等任务。.vscode存放VSCode编辑器的推荐配置如代码片段、设置等以便团队成员使用统一的编辑器设置。.editorconfig用于定义和维护跨编辑器和IDE的代码风格一致性。.env, .env.development, .env.production, .env.testVite的环境变量配置文件分别用于不同的环境通用、开发、生产、测试以便在不同环境下使用不同的配置。.eslintignore, .eslintrc.cjsESLint的配置文件和忽略文件用于代码质量和风格的检查。.prettierignore, .prettierrc.cjsPrettier的配置文件和忽略文件用于代码格式化。.stylelintignore, .stylelintrc.cjsStylelint的配置文件和忽略文件用于CSS/SCSS等样式文件的格式化和质量检查。commitlint.config.cjs用于配置Git提交信息的规范确保提交信息的一致性和可读性。lint-staged.config.cjslint-staged的配置文件用于在Git提交前自动运行linters。tsconfig.jsonTypeScript的配置文件定义了项目中TypeScript的编译选项。vite.config.tsVite的全局配置文件用于配置项目的打包、开发服务器等选项。 通用文件和目录 CHANGELOG.md项目的更新日志记录每次版本更新的内容和变更。LICENSE项目的开源协议文件如MIT、Apache等。README.md项目的README文件介绍项目的用途、安装方法、使用说明等。package-lock.json依赖包版本锁文件确保团队成员安装的依赖包版本一致。package.json项目的依赖包管理和脚本配置文件。 开发目录 构建和静态资源build存放Vite的特定配置文件或脚本根据项目配置此目录可能不常见。public存放静态资源文件如图片、favicon等这些文件不会被Webpack等构建工具处理而是直接复制到输出目录中。 源代码src项目的核心源代码目录。apiAPI接口管理目录存放与后端交互的API请求代码。assets存放静态资源文件但与public不同这里的文件可能会通过- Webpack等构建工具处理如图片压缩、字体转换等。components全局组件目录存放可复用的Vue组件。config全局配置项目录存放项目的全局配置信息。directives全局指令文件目录存放自定义的Vue指令。enums项目常用枚举目录定义项目中常用的枚举类型。hooks常用Hooks封装目录存放Vue Composition API的自定义Hooks。languages语言国际化i18n目录存放项目的多语言资源。layouts框架布局模块目录定义应用的布局结构。routers路由管理目录定义Vue Router的路由配置。storesPinia store目录用于管理Vue应用的全局状态。styles全局样式文件目录存放项目的全局样式文件。typings全局ts声明目录存放TypeScript的类型声明文件。utils常用工具库目录存放项目中常用的工具函数。views项目所有页面目录存放Vue应用的页面组件。App.vue项目的主组件文件Vue应用的根组件。main.ts项目的入口文件用于挂载Vue应用并引入全局配置和插件。vite-env.d.tsTypeScript声明文件用于指定TypeScript如何识别.vue文件。 分析main.js 上部分的一系列import就不说了就是导入一些依赖和插件 下面这句是抛出一个未捕获的全局错误 app.config.errorHandler errorHandler;接下来就是循环注册全局组件 Object.keys(Icons).forEach(key {app.component(key, Icons[key as keyof typeof Icons]); });分析路由 亿点小知识了路由的逻辑才能更清楚的了解一个项目 分析routers/index.ts文件 const mode import.meta.env.VITE_ROUTER_MODE; //此处VITE_ROUTER_MODE是hash const routerMode {hash: () createWebHashHistory(),history: () createWebHistory() };const router createRouter({history: routerModemode,routes: […staticRouter, …errorRouter],strict: false,scrollBehavior: () ({ left: 0, top: 0 }) });1.history定义了路由模式不懂得可以看下边 2.routes定义了静态路由,根据连接可以找到 modules/staticRouter.ts 3.strict:严格模式 scrollBehavior切换新页面定义页面的位置 4.路由守卫 // 6.如果没有菜单列表就重新请求菜单列表并添加动态路由if (!authStore.authMenuListGet.length) {await initDynamicRouter();return next({ …to, replace: true });}首先是异步加载initDynamicRouter方法打开initDynamicRouter看看具体逻辑位置在 modules/dynamicRouter.ts 第一部分是异步获取菜单权限列表和按钮权限列表。 const userStore useUserStore(); const authStore useAuthStore();第二部分判断有没有权限没有权限的话清除token返回登录页并且抛出一个promist错误 if (!authStore.authMenuListGet.length) {ElNotification({title: 无权限访问,message: 当前账号无任何菜单权限请联系系统管理员,type: warning,duration: 3000});userStore.setToken();router.replace(LOGIN_URL);return Promise.reject(No permission);}第三部分就是加载动态路由首先看一下authStore.flatMenuListGet是怎么来的经过搜索发现是调用了如下的方法,位置在 stores/modules/auth flatMenuListGet: state getFlatMenuList(state.authMenuList),继续深入查找getFlatMenuList方法 export function getFlatMenuList(menuList: Menu.MenuOptions[]): Menu.MenuOptions[] {let newMenuList: Menu.MenuOptions[] JSON.parse(JSON.stringify(menuList));return newMenuList.flatMap(item [item, …(item.children ? getFlatMenuList(item.children) : [])]); }这一部分可能有同学看不懂我来解释一下。 这部分主要就是递归将数组扁平化扁平化的意思就是将多维数组转换成一位数组,类似这样 [1,2,[3,4]] [1,2,3,4]具体是用过数组的flatMap方法来实现的,flatMap方法对数组中的每个元素应用给定的回调函数然后将结果展开一级返回一个新数组。 const arr [1, 2, [3], [4, 5]]; const res arr.flatMap(item item); console.log(res); // [1,2,3,4,5]由于flatMap每次只能展开一级所以需要递归调用。 至此就已经拿到了authStore.flatMenuListGet的数据。 接着往下走 item.children delete item.children这一句就是删除children,因为拿到的是扁平化的数组所以删处多余的children。 接下来就是动态导入对应的component路径。 最后将路由添加到layout组件下。 至此动态路由导入成功。 总结 以上就是路由目录分析详解这个目录结构展示了一个现代Vue.js项目的典型布局旨在提高项目的可维护性和可扩展性 如碰到其他的问题 可以私下我 一起探讨学习 如果对你有所帮助还请 点赞 收藏谢谢~ 关注收藏博客 作者会持续更新…
- 上一篇: 做钢材销售客户哪里去开发网站增城低价网站建设
- 下一篇: 做搞笑图片的网站网站设计深圳
相关文章
-
做钢材销售客户哪里去开发网站增城低价网站建设
做钢材销售客户哪里去开发网站增城低价网站建设
- 技术栈
- 2026年04月18日
-
做钢材的网站上海最有名的设计公司有哪些
做钢材的网站上海最有名的设计公司有哪些
- 技术栈
- 2026年04月18日
-
做服装找工作网站做网站设计的需要什么材料
做服装找工作网站做网站设计的需要什么材料
- 技术栈
- 2026年04月18日
-
做搞笑图片的网站网站设计深圳
做搞笑图片的网站网站设计深圳
- 技术栈
- 2026年04月18日
-
做告状网站新手建网站推荐
做告状网站新手建网站推荐
- 技术栈
- 2026年04月18日
-
做个个人网站多少钱他达拉非功效与作用主要会有哪些
做个个人网站多少钱他达拉非功效与作用主要会有哪些
- 技术栈
- 2026年04月18日
