uniapp写程序
uniapp 开发基础
UniApp 是一个使用 Vue.js 开发跨平台应用的框架,支持编译到 iOS、Android、H5 以及各种小程序平台。以下介绍 UniApp 的基本开发流程和核心概念。
环境搭建
下载并安装 HBuilderX,这是官方推荐的开发工具,内置了 UniApp 开发环境。安装完成后,在 HBuilderX 中新建一个 UniApp 项目,选择默认模板或自定义模板。
确保安装了 Node.js 环境,部分插件和依赖可能需要 Node.js 支持。如果需要使用 npm 安装第三方库,可以在项目根目录下运行 npm init 初始化项目。
项目结构
UniApp 项目结构与 Vue.js 类似,但包含一些平台特定的文件和目录:

pages:存放页面文件,每个页面是一个单独的文件夹,包含.vue文件。static:存放静态资源,如图片、字体等。manifest.json:应用配置文件,包括应用名称、图标、权限等。pages.json:路由和页面配置,定义页面的路径、样式和导航栏设置。App.vue:根组件,所有页面共享的全局样式和逻辑可以在这里定义。
页面开发
页面开发基于 Vue.js 的单文件组件(.vue),分为模板(<template>)、脚本(<script>)和样式(<style>)三部分。
<template>
<view class="container">
<text>{{ message }}</text>
<button @click="changeMessage">点击修改</button>
</view>
</template>
<script>
export default {
data() {
return {
message: 'Hello UniApp!'
}
},
methods: {
changeMessage() {
this.message = '消息已更新'
}
}
}
</script>
<style>
.container {
padding: 20px;
}
</style>
路由与导航
UniApp 的路由配置在 pages.json 中,通过 pages 数组定义页面路径和样式。跳转页面可以使用 uni.navigateTo 或 uni.redirectTo。
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
}
]
}
// 跳转到新页面
uni.navigateTo({
url: '/pages/detail/detail'
})
// 重定向页面
uni.redirectTo({
url: '/pages/login/login'
})
组件与 API
UniApp 提供了一系列内置组件和 API,支持跨平台调用。常用组件包括 <view>、<text>、<button> 等,API 包括网络请求、本地存储、设备信息等。

// 发起网络请求
uni.request({
url: 'https://api.example.com/data',
success: (res) => {
console.log(res.data)
}
})
// 存储数据
uni.setStorage({
key: 'token',
data: '123456',
success: () => {
console.log('存储成功')
}
})
平台适配
UniApp 支持条件编译,可以在代码中针对不同平台编写特定逻辑。使用 // #ifdef 和 // #endif 注释实现。
// #ifdef H5
console.log('这段代码仅在 H5 平台生效')
// #endif
// #ifdef MP-WEIXIN
console.log('这段代码仅在小程序平台生效')
// #endif
调试与发布
在 HBuilderX 中,可以通过运行菜单选择目标平台进行调试。发布时,需要在 manifest.json 中配置应用信息,并生成对应平台的发布包。
- 小程序:需在对应平台开发者工具中上传代码。
- App:需生成 iOS 或 Android 的安装包。
- H5:可直接部署到服务器。
扩展与插件
UniApp 支持通过插件扩展功能,可以在插件市场查找需要的插件,或自行开发原生插件。使用插件时,需按照文档配置和调用。
// 示例:引入第三方 UI 库
import uView from 'uview-ui'
Vue.use(uView)
常见问题
- 样式兼容性:不同平台对 CSS 的支持不同,建议使用 Flex 布局,避免使用平台特有样式。
- 性能优化:减少不必要的数据绑定,合理使用
v-if和v-show。 - 异步处理:使用
Promise或async/await处理异步操作,避免回调地狱。
通过以上步骤,可以快速上手 UniApp 开发并构建跨平台应用。






