1.1 UniApp简介

1.1.1 什么是UniApp

UniApp是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

1.1.2 UniApp的特点

一套代码,多端运行 - 使用Vue.js语法开发 - 支持10+个平台发布 - 代码复用率高达90%以上

丰富的组件和API - 内置丰富的基础组件 - 提供完整的API体系 - 支持原生插件扩展

强大的开发工具 - HBuilderX集成开发环境 - 可视化界面设计 - 实时预览和调试

活跃的生态系统 - 插件市场资源丰富 - 社区活跃,文档完善 - 持续更新和维护

1.1.3 UniApp架构原理

┌─────────────────────────────────────┐
│              UniApp                 │
├─────────────────────────────────────┤
│           Vue.js 框架               │
├─────────────────────────────────────┤
│          编译器 (Compiler)          │
├─────────────────────────────────────┤
│    运行时 (Runtime) + 适配层        │
├─────────────────────────────────────┤
│  iOS  │ Android │ Web │ 小程序...   │
└─────────────────────────────────────┘

编译时转换: - Vue组件 → 各平台原生组件 - Vue API → 各平台原生API - CSS样式 → 平台特定样式

运行时适配: - 统一的事件系统 - 统一的生命周期 - 统一的数据绑定

1.1.4 支持的平台

平台类型 具体平台 说明
移动端 iOS、Android 原生App
Web端 H5、PC Web 响应式网页
小程序 微信、支付宝、百度、头条、QQ等 各厂商小程序
快应用 华为、小米、OPPO、VIVO等 手机厂商快应用
桌面端 Windows、macOS、Linux Electron应用

1.2 开发环境搭建

1.2.1 系统要求

操作系统: - Windows 7及以上 - macOS 10.12及以上 - Ubuntu 16.04及以上

硬件要求: - 内存:8GB以上推荐 - 存储:至少10GB可用空间 - 处理器:Intel i5或同等性能

1.2.2 安装HBuilderX

1. 下载HBuilderX

访问HBuilderX官网下载最新版本。

版本选择: - 标准版:免费,包含基础功能 - App开发版:付费,包含App打包等高级功能

2. 安装步骤

# Windows
1. 下载 HBuilderX.exe
2. 双击运行安装程序
3. 选择安装路径
4. 完成安装

# macOS
1. 下载 HBuilderX.dmg
2. 双击挂载镜像
3. 拖拽到Applications文件夹
4. 启动应用

# Linux
1. 下载 HBuilderX.tar.gz
2. 解压到指定目录
3. 运行 HBuilderX 可执行文件

3. 首次启动配置

// 启动HBuilderX后的配置步骤
1. 选择工作空间目录
2. 登录DCloud账号(可选)
3. 安装必要插件
4. 配置代码格式化选项

1.2.3 安装Node.js环境

1. 下载安装Node.js

# 访问 https://nodejs.org/
# 下载LTS版本(推荐)

# 验证安装
node --version
npm --version

2. 配置npm镜像(可选)

# 使用淘宝镜像加速
npm config set registry https://registry.npmmirror.com

# 验证配置
npm config get registry

3. 安装全局工具

# 安装Vue CLI(可选)
npm install -g @vue/cli

# 安装UniApp CLI(可选)
npm install -g @dcloudio/uvm

1.2.4 移动端开发环境

Android开发环境

# 1. 安装Android Studio
# 下载地址:https://developer.android.com/studio

# 2. 配置Android SDK
# 设置环境变量 ANDROID_HOME
# 添加到PATH:$ANDROID_HOME/tools
#              $ANDROID_HOME/platform-tools

# 3. 创建Android虚拟设备(AVD)
# 在Android Studio中创建模拟器

iOS开发环境(仅macOS)

# 1. 安装Xcode
# 从App Store下载安装

# 2. 安装Xcode Command Line Tools
xcode-select --install

# 3. 配置iOS模拟器
# 在Xcode中配置iOS Simulator

1.2.5 小程序开发工具

微信小程序

# 1. 下载微信开发者工具
# https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

# 2. 安装并登录微信账号
# 3. 获取小程序AppID(需要注册小程序账号)

支付宝小程序

# 1. 下载支付宝小程序开发者工具
# https://opendocs.alipay.com/mini/ide/download

# 2. 安装并登录支付宝账号
# 3. 创建小程序应用

1.3 创建第一个UniApp项目

1.3.1 使用HBuilderX创建项目

1. 新建项目

// 在HBuilderX中操作步骤
1. 文件 → 新建 → 项目
2. 选择 "uni-app" 项目类型
3. 选择模板:
   - 默认模板(推荐新手)
   - Hello uni-app(示例项目)
   - 其他模板
4. 填写项目名称和存储位置
5. 点击创建

2. 项目模板选择

模板类型 适用场景 特点
默认模板 新项目开发 基础结构,轻量级
Hello uni-app 学习参考 包含丰富示例
登录模板 需要用户系统 包含登录注册功能
新闻模板 内容展示类 新闻列表和详情
商城模板 电商应用 商品展示和购买流程

1.3.2 使用Vue CLI创建项目

1. 安装Vue CLI

# 全局安装Vue CLI
npm install -g @vue/cli

# 验证安装
vue --version

2. 创建UniApp项目

# 使用Vue CLI创建项目
vue create -p dcloudio/uni-preset-vue my-uniapp-project

# 选择模板
# 1. 默认模板
# 2. 默认模板(TypeScript)
# 3. 默认模板(Vue3/Vite)

# 进入项目目录
cd my-uniapp-project

# 安装依赖
npm install

3. 项目结构说明

my-uniapp-project/
├── public/                 # 静态资源目录
│   └── index.html         # HTML模板
├── src/                   # 源代码目录
│   ├── components/        # 组件目录
│   ├── pages/            # 页面目录
│   ├── static/           # 静态资源
│   ├── store/            # 状态管理
│   ├── utils/            # 工具函数
│   ├── App.vue           # 应用入口组件
│   ├── main.js           # 应用入口文件
│   ├── manifest.json     # 应用配置文件
│   ├── pages.json        # 页面路由配置
│   └── uni.scss          # 全局样式
├── package.json          # 项目配置文件
└── README.md             # 项目说明

1.3.3 项目配置详解

1. manifest.json配置

{
  "name": "my-uniapp-project",
  "appid": "__UNI__XXXXXXX",
  "description": "我的第一个UniApp项目",
  "versionName": "1.0.0",
  "versionCode": "100",
  "transformPx": false,
  "app-plus": {
    "usingComponents": true,
    "nvueStyleCompiler": "uni-app",
    "compilerVersion": 3,
    "splashscreen": {
      "alwaysShowBeforeRender": true,
      "waiting": true,
      "autoclose": true,
      "delay": 0
    },
    "modules": {},
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\" />",
          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\" />",
          "<uses-permission android:name=\"android.permission.VIBRATE\" />",
          "<uses-permission android:name=\"android.permission.READ_LOGS\" />",
          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />",
          "<uses-feature android:name=\"android.hardware.camera.autofocus\" />",
          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
          "<uses-permission android:name=\"android.permission.CAMERA\" />",
          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\" />",
          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" />",
          "<uses-permission android:name=\"android.permission.WAKE_LOCK\" />",
          "<uses-permission android:name=\"android.permission.FLASHLIGHT\" />",
          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\" />"
        ]
      },
      "ios": {},
      "sdkConfigs": {}
    }
  },
  "quickapp": {},
  "mp-weixin": {
    "appid": "",
    "setting": {
      "urlCheck": false
    },
    "usingComponents": true
  },
  "mp-alipay": {
    "usingComponents": true
  },
  "mp-baidu": {
    "usingComponents": true
  },
  "mp-toutiao": {
    "usingComponents": true
  },
  "uniStatistics": {
    "enable": false
  },
  "vueVersion": "3"
}

2. pages.json配置

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/about/about",
      "style": {
        "navigationBarTitleText": "关于我们"
      }
    }
  ],
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  },
  "tabBar": {
    "color": "#7A7E83",
    "selectedColor": "#3cc51f",
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "list": [
      {
        "pagePath": "pages/index/index",
        "iconPath": "static/tab-home.png",
        "selectedIconPath": "static/tab-home-current.png",
        "text": "首页"
      },
      {
        "pagePath": "pages/about/about",
        "iconPath": "static/tab-about.png",
        "selectedIconPath": "static/tab-about-current.png",
        "text": "关于"
      }
    ]
  }
}

1.4 运行和调试项目

1.4.1 在HBuilderX中运行

1. 运行到浏览器

// 操作步骤
1. 在项目上右键
2. 选择 "运行" → "运行到浏览器" → "Chrome"
3. 项目会自动编译并在浏览器中打开
4. 支持热重载,修改代码会自动刷新

2. 运行到小程序

// 微信小程序
1. 运行 → 运行到小程序模拟器 → 微信开发者工具
2. 首次运行需要配置微信开发者工具路径
3. 自动打开微信开发者工具并加载项目

// 支付宝小程序
1. 运行 → 运行到小程序模拟器 → 支付宝开发者工具
2. 配置支付宝开发者工具路径
3. 在支付宝开发者工具中预览

3. 运行到手机或模拟器

// Android
1. 连接Android设备或启动模拟器
2. 运行 → 运行到手机或模拟器 → Android
3. 选择设备进行安装和调试

// iOS(仅macOS)
1. 连接iOS设备或启动模拟器
2. 运行 → 运行到手机或模拟器 → iOS
3. 需要配置开发者证书

1.4.2 使用命令行运行

1. 开发模式运行

# 运行到H5
npm run dev:h5

# 运行到微信小程序
npm run dev:mp-weixin

# 运行到支付宝小程序
npm run dev:mp-alipay

# 运行到Android
npm run dev:app-android

# 运行到iOS
npm run dev:app-ios

2. 生产模式构建

# 构建H5
npm run build:h5

# 构建微信小程序
npm run build:mp-weixin

# 构建支付宝小程序
npm run build:mp-alipay

# 构建Android
npm run build:app-android

# 构建iOS
npm run build:app-ios

1.4.3 调试技巧

1. 浏览器调试

// 使用浏览器开发者工具
1. F12打开开发者工具
2. 在Console中查看日志
3. 在Sources中设置断点
4. 在Network中查看网络请求

// 移动端调试
1. 开启浏览器移动端模拟
2. 选择不同设备尺寸测试
3. 模拟触摸事件

2. 小程序调试

// 微信开发者工具调试
1. 在调试器中查看页面结构
2. 在Console中执行JavaScript
3. 在Network中查看请求
4. 在Storage中查看本地存储

// 真机调试
1. 开启调试模式
2. 扫码在真机上预览
3. 使用vconsole进行调试

3. App调试

// Android调试
1. 启用USB调试
2. 使用Chrome DevTools
3. 查看logcat日志

// iOS调试
1. 连接Xcode
2. 查看控制台日志
3. 使用Safari Web Inspector

1.5 常见问题与解决方案

1.5.1 安装问题

问题1:HBuilderX启动失败

# 解决方案
1. 检查系统权限
2. 关闭杀毒软件
3. 以管理员身份运行
4. 重新下载安装

问题2:Node.js安装失败

# 解决方案
1. 下载官方LTS版本
2. 清理之前的安装残留
3. 检查系统环境变量
4. 使用nvm管理Node版本

1.5.2 项目创建问题

问题1:项目创建失败

// 可能原因和解决方案
1. 网络连接问题 → 检查网络或使用代理
2. 权限不足 → 使用管理员权限
3. 磁盘空间不足 → 清理磁盘空间
4. 路径包含中文 → 使用英文路径

问题2:依赖安装失败

# 解决方案
# 清理npm缓存
npm cache clean --force

# 删除node_modules重新安装
rm -rf node_modules
npm install

# 使用yarn替代npm
npm install -g yarn
yarn install

1.5.3 运行问题

问题1:编译失败

// 常见原因
1. 语法错误 → 检查代码语法
2. 依赖缺失 → 安装缺失的依赖
3. 版本不兼容 → 检查版本兼容性
4. 配置错误 → 检查配置文件

问题2:热重载不工作

// 解决方案
1. 重启开发服务器
2. 清理浏览器缓存
3. 检查文件监听设置
4. 更新HBuilderX版本

1.5.4 调试问题

问题1:无法连接调试器

# Android调试
1. 检查USB调试是否开启
2. 安装ADB驱动
3. 检查设备连接状态
4. 重启ADB服务

# iOS调试
1. 信任开发者证书
2. 检查设备连接
3. 重启Xcode
4. 检查开发者账号

问题2:小程序调试异常

// 解决方案
1. 更新开发者工具
2. 清理小程序缓存
3. 检查AppID配置
4. 重新导入项目

1.6 开发工具详解

1.6.1 HBuilderX功能介绍

1. 代码编辑功能

// 智能提示
- Vue语法高亮
- 组件属性提示
- API自动补全
- 错误检查和提示

// 代码格式化
- 自动缩进
- 代码美化
- 自定义格式化规则

2. 项目管理功能

// 项目结构
- 文件树视图
- 快速搜索文件
- 批量操作文件
- 项目模板管理

// 版本控制
- Git集成
- 代码对比
- 提交历史查看

3. 调试和预览

// 实时预览
- 边写边看效果
- 多设备同步预览
- 二维码扫码预览

// 调试工具
- 断点调试
- 变量查看
- 调用栈分析

1.6.2 插件和扩展

1. 必备插件

// 代码提示插件
- uni-app代码块
- Vue语法提示
- JavaScript增强

// 主题插件
- 暗色主题
- 护眼主题
- 自定义主题

// 工具插件
- 代码格式化
- 图片压缩
- 文件对比

2. 插件安装方法

// 通过插件市场安装
1. 工具 → 插件安装
2. 搜索需要的插件
3. 点击安装
4. 重启HBuilderX

// 手动安装插件
1. 下载插件文件
2. 解压到plugins目录
3. 重启编辑器

1.6.3 自定义配置

1. 编辑器设置

// settings.json配置示例
{
  "editor.fontSize": 14,
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.wordWrap": "on",
  "editor.minimap.enabled": true,
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 1000
}

2. 快捷键设置

// 常用快捷键
Ctrl + S        // 保存文件
Ctrl + Shift + P // 命令面板
Ctrl + `        // 打开终端
Ctrl + /        // 注释代码
Ctrl + D        // 选择相同内容
F5              // 运行项目
F12             // 打开调试工具

1.7 本章小结

1.7.1 学习要点回顾

  1. UniApp概念:理解UniApp的核心理念和架构原理
  2. 环境搭建:掌握完整的开发环境配置流程
  3. 项目创建:学会使用不同方式创建UniApp项目
  4. 运行调试:熟悉各平台的运行和调试方法
  5. 问题解决:了解常见问题的解决方案

1.7.2 实践练习

练习1:环境验证

# 验证开发环境是否正确安装
1. 检查HBuilderX是否正常启动
2. 验证Node.js和npm版本
3. 测试创建新项目
4. 尝试运行到不同平台

练习2:项目探索

// 熟悉项目结构
1. 查看默认项目的文件结构
2. 理解各配置文件的作用
3. 修改页面内容并查看效果
4. 尝试添加新页面

1.7.3 下章预告

下一章我们将深入学习UniApp的项目结构和开发工具的使用,包括: - 详细的项目目录结构分析 - 配置文件的深入理解 - 开发工具的高级功能 - 代码组织和管理最佳实践

1.7.4 扩展阅读


恭喜您完成了UniApp开发环境的搭建!现在您已经具备了开始UniApp开发的基础条件。