uniapp和vue吗
Uniapp与Vue的关系
Uniapp是一个基于Vue.js的前端框架,用于开发跨平台应用(如小程序、H5、App等)。Vue.js是Uniapp的核心技术栈之一,Uniapp在其基础上扩展了多端适配能力。
核心区别
技术定位
Vue.js是纯前端框架,专注于Web界面开发;Uniapp是基于Vue的跨端解决方案,通过条件编译实现多平台代码复用。
模板语法差异
Uniapp支持Vue的模板语法,但部分标签需替换为多端兼容组件:
<!-- Vue -->
<template>
<div>{{message}}</div>
</template>
<!-- Uniapp -->
<template>
<view>{{message}}</view>
</template>
生命周期扩展
Uniapp在Vue生命周期基础上增加了应用级生命周期:
// 新增的onLaunch等钩子
export default {
onLaunch() {
console.log('应用初始化')
}
}
开发差异点
路由系统
Uniapp使用自研的路由机制,与Vue Router不兼容:
uni.navigateTo({
url: '/pages/home/index'
})
状态管理
支持Vuex但需注意多端数据持久化问题,推荐使用uniapp的存储API:
uni.setStorageSync('key', 'value')
CSS处理
需使用rpx单位适配不同屏幕:
.container {
width: 750rpx; /* 设计稿1:1换算 */
}
混合开发建议
现有Vue项目迁移

- 逐步替换平台相关组件(如div→view)
- 通过条件编译处理平台差异:
// #ifdef H5 console.log('仅在H5环境执行') // #endif
代码共享策略
- 将通用逻辑放入common目录
- 平台特定实现使用单独目录结构:
├── common ├── platforms │ ├── h5 │ └── mp-weixin
性能优化方向
渲染优化
避免在模板中使用复杂表达式,推荐使用计算属性:
computed: {
filteredList() {
return this.list.filter(item => item.valid)
}
}
包体积控制
-
启用分包加载:

{ "subPackages": [{ "root": "subpackage", "pages": [...] }] } -
使用按需引入策略:
import { Button } from 'vant'
调试技巧
多端日志
使用uni-app的日志系统统一输出:
uni.showToast({
title: '操作成功',
icon: 'none'
})
真机调试
- 小程序端需使用开发者工具
- App端通过HBuilderX生成调试包
- H5端支持常规浏览器调试
生态整合
插件市场
Uniapp官方插件市场提供现成解决方案,包括:
- 支付模块
- 地图组件
- 图表库封装
第三方库兼容
- 优先选择支持多端的库(如uViewUI)
- 浏览器API需通过uni代理访问:
uni.request({ url: 'https://api.example.com' })






