JeecgBoot-Uniapp

这个项目的目录结构是标准的 Vite + Vue3 + TS 架构,它比传统的 uni-app 项目更接近 Vue3 官方的开发体验。

JeecgUniapp/

├── src/

│ ├── api/ # 所有的接口定义,按模块分类(如 sys.ts, user.ts)

│ ├── components/ # 全局自定义组件,Jeecg 封装的 UI 件

│ ├── hooks/ # Vue3 的组合式 API 钩子(封装逻辑复用)

│ ├── layouts/ # 页面布局模板(配合插件实现页面包装)

│ ├── pages/ # 【主包】核心页面(首页、登录、仪表盘)

│ ├── pages_detail/ # 【分包】详情类页面,减轻主包压力

│ ├── pages_sample/ # 【分包】示例页面,演示各种组件用法

│ ├── static/ # 静态资源(图标、图片)

│ ├── store/ # Pinia 状态管理(存储用户信息、Token)

│ ├── utils/ # 工具类(重点是其中的 http 目录)

│ ├── App.vue # 根组件

│ ├── main.ts # 项目入口

│ ├── pages.json.js # 动态路由生成的逻辑(如果有)

│ └── vite.config.ts # 核心插件配置(所有黑科技的源头)

封装 uni.requesthttp 目录

封装在 http 里的作用:

  1. 统一拦截 (Interceptors)

    • 请求拦截 :在每个请求发出去前,自动在 Header 里塞入 X-Access-Token。你不用每个页面都去写拿 Token 的代码。

    • 响应拦截:如果后端返回 401(Token过期),拦截器直接帮你弹窗并跳到登录页。如果返回 500,直接统一弹出错误提示。

  2. 环境切换 :通过封装,你可以一键切换 开发环境测试环境生产环境 的 API 地址。

  3. Promise 化 :让原本的回调函数写法变成 async/await,代码写起来像德芙一样顺滑。

@uni-helper/vite-plugin-uni-pages 彻底解析

这就是你最懵逼的地方。它是 "约定式路由" 的实现者。

1. <route> 标签是什么意思?

在每个 .vue 文件顶部的这段代码,叫做 SFC(单文件组件)路由配置

HTML

复制代码
<route lang="json5" type="page">
{
  layout: 'default',
  style: {
    navigationBarTitleText: '用户中心',
    navigationStyle: 'custom'
  }
}
</route>
  • lang="json5":支持带注释的 JSON。

  • type="page":标记这是个页面。

  • layout:告诉框架,这个页面要套用哪个底色或导航栏模板。

2. 为什么要用它?(作用)
  • 自动化 :以前你增加一个页面,得去 pages.json 手动填地址、标题。现在你只要在 src/pages 下新建个文件,插件自动帮你把地址塞进 pages.json

  • 代码内聚:标题是啥、是否允许下拉刷新,这些配置直接写在页面代码里,不用跨文件找。

3. 如何使用?

你只需要在 vite.config.ts 里引入它。插件会监听你的 src/pages 文件夹,只要你保存代码,它就在后台刷新 pages.json


四、 分包(Subpackages)是怎么实现的?

Jeecg 项目的分包实现非常聪明,也是靠这个插件完成的。

实现原理:

  1. 文件夹约定 :你在 src 下看到以 pages_ 开头的目录(如 pages_detail)。

  2. 插件配置 :在 vite.config.tsUniPages 配置里,指定这些目录为分包目录。

  3. 动态编译 :插件扫描到这些特殊文件夹时,会自动在 pages.jsonsubPackages 字段里生成对应的路径。

为什么要分包? 因为小程序主包限制 2MB。Jeecg 这种功能非常多的项目,如果不分包,你连预览都点不开。通过这种方式,只有用户点击"详情"时,才会去加载 pages_detail 里的代码,极大提升了首屏启动速度。

相关推荐
怀君4 小时前
Uniapp——微信小程序Canvas层级过高问题解决
微信小程序·小程序·uni-app
阿凤211 天前
uniapp运行到app端怎么打开文件
android·前端·javascript·uni-app
00后程序员张1 天前
完整教程:如何将iOS应用程序提交到App Store审核和上架
android·macos·ios·小程序·uni-app·cocoa·iphone
00后程序员张1 天前
iOS应用性能优化全解析:卡顿、耗电、启动与瘦身
android·ios·性能优化·小程序·uni-app·iphone·webview
Front思1 天前
解决 uniapp Dart Sass 2.0.0 弃用警告
前端·uni-app·sass
星空下的曙光1 天前
uniapp编译到微信小程序接口获取不到数据uni.request
微信小程序·小程序·uni-app
2501_916007472 天前
iOS逆向工程:详细解析ptrace反调试机制的破解方法与实战步骤
android·macos·ios·小程序·uni-app·cocoa·iphone
00后程序员张2 天前
前端可视化大屏制作全指南:需求分析、技术选型与性能优化
前端·ios·性能优化·小程序·uni-app·iphone·需求分析
编程迪2 天前
基于Java和uniapp开发的名片交换分享系统企业名片管理软件个人电子名片小程序源码
java·uni-app·电子名片·名片小程序·名片软件源码