移动端开发方案
大约 2 分钟
移动端开发方案
以下是一个完整的、推荐的 uni-app + Vue 3 + Vite 项目结构示例,适合作为你未来开发移动 App 的项目壳子。这个结构专注于“可扩展性 + 可维护性 + 快速落地”。
✅ 顶级目录结构
uni-app-vue3-template/
├── src/ # 主目录(Vite 模式推荐集中管理)
│ ├── pages/ # 页面目录(每个页面一个文件夹)
│ │ ├── index/ # 首页
│ │ │ └── index.vue
│ │ └── login/ # 登录页
│ │ └── login.vue
│ │
│ ├── components/ # 公共组件
│ │ └── MyButton.vue
│ │
│ ├── store/ # Pinia 状态管理
│ │ └── user.ts
│ │
│ ├── api/ # 所有接口封装
│ │ └── user.ts
│ │
│ ├── utils/ # 工具函数
│ │ ├── request.ts # 网络请求封装
│ │ └── storage.ts # 本地存储封装
│ │
│ ├── config/ # 配置(如环境变量、常量)
│ │ ├── env.ts
│ │ └── constant.ts
│ │
│ ├── hooks/ # 自定义组合式函数(如 useLogin)
│ │ └── useLogin.ts
│ │
│ ├── styles/ # 全局样式
│ │ ├── reset.scss
│ │ └── variables.scss
│ │
│ ├── App.vue # 根组件
│ └── main.ts # 项目入口
│
├── static/ # 静态资源(图片等)
├── pages.json # 路由配置(uni-app 特有)
├── manifest.json # App 打包配置
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
├── package.json # 项目依赖
└── .env.[mode] # 各环境变量配置
🔧 关键代码示例
main.ts
import { createSSRApp } from 'vue'
import App from './App.vue'
import { createPinia } from 'pinia'
export function createApp() {
const app = createSSRApp(App)
app.use(createPinia())
return { app }
}
request.ts
export const request = (options) => {
const token = uni.getStorageSync('token')
return new Promise((resolve, reject) => {
uni.request({
...options,
header: {
...options.header,
Authorization: token ? `Bearer ${token}` : '',
},
success(res) {
if (res.statusCode === 200) resolve(res.data)
else reject(res)
},
fail(err) {
reject(err)
},
})
})
}
store/user.ts
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
state: () => ({
token: '',
info: {},
}),
actions: {
setToken(token: string) {
this.token = token
uni.setStorageSync('token', token)
},
logout() {
this.token = ''
this.info = {}
uni.removeStorageSync('token')
},
},
})
📦 推荐依赖列表
# 核心依赖
npm install vue@3 pinia
# UI 组件库(任选其一)
npm install uview-plus # 更偏向小程序
# or
npm install @nutui/nutui uni-sass # 更偏向移动端 H5
# 类型支持(TS 项目推荐)
npm install --save-dev typescript @types/node
🔋 可选增强模块建议(预留目录位):
| 模块名 | 说明 |
|---|---|
auth/ | 权限控制,比如登录拦截、页面守卫逻辑 |
i18n/ | 国际化多语言支持(如果你未来有出海需求) |
native/ | 原生能力封装(如摄像头、扫码、权限弹窗) |
plugins/ | 第三方插件的封装,如百度地图、支付模块等 |
store/ | Pinia 各类模块(用户、权限、设置等) |
hooks/ | 可组合的业务逻辑:如 useUser、useLogin |
api/ | 将所有后端接口按业务模块拆分 |
config/ | 统一管理接口前缀、环境等配置项 |
utils/ | 封装常用方法(请求、本地存储、验证等)**** |
🧪 启动方式(以 Vite 模式为例)
bash复制编辑npm run dev:h5 # H5 启动
npm run dev:mp-weixin # 小程序模拟器
npm run dev:app # App 模拟器(需 HBuilderX)
如果你需要,我可以基于这个结构给你打包一个 Git 模板项目,含基础功能和样例页面,让你直接 npm install && npm run dev:h5 就能看到效果。
你是否需要我帮你快速生成这个 uni-app + Vue3 项目结构 的完整模板工程?