Basic_Mini:微信小程序脚手架

原生小程序 + TypeScript · 与 Basic_Web 后端完全对齐 · 零框架依赖

为什么做这个

有了 Basic_Web 后端脚手架之后,前端自然也需要一个配套的小程序脚手架。市面上小程序框架很多——Taro、uni-app、mpvue——但我一个都没选。

原因很简单:跨端框架的坑比原生多。样式兼容、组件差异、API 不支持、构建链路复杂——每个坑都能卡你半天。而且一旦框架停更,你就被锁死了。我做的是工具型产品,不需要跨端,只需要微信小程序。原生 + TypeScript 就够了。

Basic_Mini 和 Basic_Web 是一对:后端用 Basic_Web,前端用 Basic_Mini,分层架构、错误处理、权限体系一一对应。改个项目名就能开始写业务。

六层架构

后端有五层,前端有六层。多出来的一层是组件层——小程序的 WXML/WXSS 天然就是组件化的:

职责禁止
页面层渲染 UI、处理交互、调用 Service直接调用 API 层、包含业务逻辑
组件层可复用 UI 单元、接收 properties、触发 events直接调用 API 层、管理全局状态
服务层编排业务流程、跨 API 协调、Token 生命周期直接调用 wx.request、操作 DOM
接口层封装 HTTP 请求、Token 自动刷新、统一错误处理包含业务逻辑、做 UI 提示
基础设施层本地存储、路由守卫、日志、环境配置包含业务逻辑
模型层TypeScript 类型定义、接口契约包含业务逻辑

与 Basic_Web 的对齐

Basic_WebBasic_Mini对齐点
Router 路由层pages.json + 路由守卫页面路由 + 访问控制
Service 业务层services/业务编排 + 状态管理
Repository 数据层api/HTTP 请求封装 + 拦截器
Model 模型层models/类型定义一一对应
Schema 请求/响应models/接口请求/响应类型
Infra 基础设施infra/存储/路由/日志/环境
Middleware 中间件api/client.ts请求拦截/Token 刷新

开箱即用的能力

能力说明
JWT 双 TokenAccess 30分钟 + Refresh 7天,401 自动刷新,刷新失败跳登录
Token 加密存储AES 加密后存入 wx.storage,防止反编译泄露
RBAC 权限与 Basic_Web 的 PlatformPermission 对齐,按平台过滤权限
路由守卫需登录页面自动跳转,需权限页面自动检查
统一错误处理401/403/429 自动处理,业务错误 Service 层捕获
分包加载主包 < 2MB,按业务域划分子包
TypeScript 严格模式零 any,所有公共函数有类型注解

开发日记

  1. Basic_Mini 项目初始化

    六层架构搭建、JWT双Token自动刷新、路由守卫、权限组件、与Basic_Web对齐。