uni-app
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
📊 框架概览
- 开发者: DCloud(数字天堂)
- 开源时间: 2019年2月
- 开发语言: TypeScript/JavaScript
- 语法风格: Vue.js
- 官方网站: https://uniapp.dcloud.net.cn
- GitHub: https://github.com/dcloudio/uni-app
🎯 框架特色
真正的全端覆盖
- 15+个平台: 覆盖所有主流平台和设备
- 原生性能: 编译为各平台的原生代码
- 统一开发: 一套Vue代码适配所有平台
- 差异化处理: 灵活处理平台间的差异
Vue生态完整
- Vue语法: 完全基于Vue.js开发
- Vue3支持: 全面支持Vue3 Composition API
- 生态丰富: 可使用Vue生态的大部分插件
- 开发体验: 熟悉的Vue开发体验
性能优化
- 编译优化: 针对各平台的编译优化
- 包体积小: 运行时体积小,启动速度快
- 原生渲染: 使用原生组件渲染,性能接近原生
- 智能差量: 智能的差量更新机制
🛠️ 支持平台
移动端
- iOS App: 编译为原生iOS应用
- Android App: 编译为原生Android应用
- 鸿蒙App: 支持华为鸿蒙系统
- 快应用: 支持华为、小米、OPPO等快应用
小程序
- 微信小程序: 完整支持微信小程序
- 支付宝小程序: 支持支付宝小程序
- 百度小程序: 支持百度智能小程序
- 字节跳动小程序: 支持抖音、今日头条小程序
- QQ小程序: 支持QQ小程序
- 快手小程序: 支持快手小程序
- 钉钉小程序: 支持钉钉小程序
- 飞书小程序: 支持飞书小程序
- 淘宝小程序: 支持淘宝小程序
Web端
- H5: 编译为响应式Web应用
- PC Web: 支持桌面端Web应用
- PWA: 支持渐进式Web应用
📱 开发体验
Vue组件开发
vue
<template>
<view class="container">
<text class="title">Hello uni-app</text>
<text class="count">点击次数: {{ count }}</text>
<button @click="handleClick">点击我</button>
</view>
</template>
<script>
export default {
data() {
return {
count: 0
}
},
methods: {
handleClick() {
this.count++
}
}
}
</script>
<style>
.container {
padding: 20px;
}
.title {
font-size: 18px;
font-weight: bold;
}
</style>
Vue3 Composition API
vue
<template>
<view class="container">
<text class="title">Hello Vue3</text>
<text class="count">点击次数: {{ count }}</text>
<button @click="increment">点击我</button>
</view>
</template>
<script setup>
import { ref } from 'vue'
const count = ref(0)
const increment = () => {
count.value++
}
</script>
🎨 UI组件库
uni-ui
- 官方组件库: DCloud官方维护的组件库
- 全端兼容: 所有组件都支持全端运行
- 扩展组件: 提供丰富的扩展组件
- 主题定制: 支持主题定制和样式覆盖
uView UI
- 第三方组件库: 社区流行的UI组件库
- 组件丰富: 提供80+个精美组件
- 文档完善: 详细的文档和示例
- 主题系统: 完整的主题定制系统
ColorUI
- CSS组件库: 专注于样式的组件库
- 轻量级: 体积小,性能好
- 美观: 精美的UI设计
- 易用: 简单易用的API
💰 商业应用
成功案例
- DCloud开发者中心: 官方开发者平台
- Hello uni-app: 官方示例应用
- uni统计: 数据统计分析平台
- 众多企业应用: 银行、电商、教育等行业应用
应用场景
- 企业应用: OA、CRM、ERP等企业级应用
- 电商应用: 商城、购物、支付等电商应用
- 内容应用: 新闻、视频、社交等内容应用
- 工具应用: 计算器、天气、地图等工具应用
📈 发展趋势
技术演进
- Vue3全面支持: 完整支持Vue3生态
- TypeScript: 更好的TypeScript支持
- Vite支持: 集成Vite构建工具
- 性能优化: 持续的性能优化和体验提升
生态扩展
- 插件市场: 丰富的插件生态
- 模板市场: 各种行业模板
- 云服务: uniCloud云开发平台
- 统计分析: uni统计数据分析
🚀 快速开始
1. 环境准备
bash
# 安装Node.js (>= 14.0.0)
node --version
# 安装HBuilderX或使用CLI
# 方式1: 下载HBuilderX IDE
# 方式2: 使用Vue CLI创建
npm install -g @vue/cli
2. 创建项目
bash
# 使用Vue CLI创建
vue create -p dcloudio/uni-preset-vue my-project
# 选择模板
# - 默认模板
# - TypeScript模板
# - 自定义模板
3. 开发调试
bash
# 进入项目目录
cd my-project
# 安装依赖
npm install
# 微信小程序
npm run dev:mp-weixin
# H5
npm run dev:h5
# App
npm run dev:app-plus
4. 构建发布
bash
# 构建微信小程序
npm run build:mp-weixin
# 构建H5
npm run build:h5
# 构建App
npm run build:app-plus
📚 学习资源
官方文档
社区资源
视频教程
🎯 最佳实践
项目结构
src/
├── pages/ # 页面文件
├── components/ # 公共组件
├── static/ # 静态资源
├── utils/ # 工具函数
├── store/ # 状态管理
├── styles/ # 全局样式
├── App.vue # 应用入口
├── main.js # 入口文件
├── manifest.json # 应用配置
└── pages.json # 页面配置
跨端兼容
- 条件编译: 使用
#ifdef
处理平台差异 - API适配: 使用uni-app统一API
- 样式适配: 注意不同平台的样式差异
- 组件选择: 优先使用跨端组件
性能优化
- 分包加载: 合理使用分包减少首屏加载
- 图片优化: 使用合适格式和尺寸的图片
- 代码优化: 避免不必要的计算和渲染
- 缓存策略: 合理使用缓存提高性能
🔧 开发工具
HBuilderX
- 官方IDE: DCloud官方开发工具
- 可视化开发: 拖拽式界面设计
- 真机调试: 便捷的真机调试功能
- 云打包: 云端打包服务
VS Code
- 插件支持: uni-app官方插件
- 语法高亮: Vue语法高亮支持
- 智能提示: API和组件智能提示
- 调试支持: 断点调试功能
其他工具
- 微信开发者工具: 小程序调试
- Chrome DevTools: H5调试
- Android Studio: Android调试
- Xcode: iOS调试
📞 技术支持
官方支持
- 官方文档: 详细的开发文档和API参考
- DCloud社区: 官方技术社区
- QQ群: 官方技术交流群
- 在线客服: 工作时间在线技术支持
社区支持
- GitHub: 开源项目和问题反馈
- 掘金: uni-app技术文章
- CSDN: 中文技术博客
- 知乎: 技术问答和讨论
商业支持
- 技术咨询: 专业技术咨询服务
- 定制开发: 企业级定制开发
- 培训服务: 团队技术培训
- 云服务: uniCloud云开发服务
生态服务
- 插件市场: 丰富的第三方插件
- 模板市场: 各行业应用模板
- 外包服务: 专业外包开发团队
- 认证服务: 开发者认证和培训
uni-app作为Vue生态的跨端开发框架,为开发者提供了完整的全端开发解决方案。通过Vue的开发方式和强大的编译能力,让开发者能够高效地开发出覆盖所有主流平台的应用。