当前位置:首页 > uni-app

uniapp使用教学

2026-02-06 05:34:28uni-app

uniapp 简介

Uniapp 是一个基于 Vue.js 的开发框架,允许开发者使用一套代码同时构建跨平台应用(如 iOS、Android、H5、小程序等)。其核心优势在于“一次开发,多端发布”,大幅提升开发效率。

环境搭建

下载并安装 HBuilderX(官方推荐的 IDE),支持 Windows 和 macOS。HBuilderX 内置了 uniapp 开发所需的工具链和调试环境。

安装 Node.js(建议 LTS 版本),用于依赖管理和打包构建。通过 npm 或 yarn 安装必要的依赖包。

创建项目

在 HBuilderX 中选择“新建项目”,选择 uniapp 模板(默认模板或自定义模板)。填写项目名称和存储路径,完成初始化。

通过命令行创建项目(需安装 Vue CLI):

npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-project

目录结构

  • pages:页面目录,每个页面为一个文件夹,包含 .vue 文件。
  • static:静态资源目录(图片、字体等)。
  • components:可复用组件目录。
  • manifest.json:应用配置(如 AppID、启动图等)。
  • pages.json:路由和页面样式配置。

页面开发

每个页面由 .vue 文件构成,包含模板(template)、脚本(script)、样式(style)三部分。示例:

<template>
  <view>
    <text>{{ message }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello uniapp!"
    };
  }
};
</script>

<style>
view {
  padding: 20px;
}
</style>

路由配置

pages.json 中配置页面路由和样式:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    }
  ]
}

通过 uni.navigateTo 实现页面跳转:

uni.navigateTo({
  url: '/pages/detail/detail'
});

多端适配

使用条件编译处理平台差异:

// #ifdef H5
console.log("仅在 H5 平台生效");
// #endif

通过 CSS 媒体查询或动态样式适配不同屏幕尺寸:

@media screen and (max-width: 750px) {
  .container { padding: 10px; }
}

插件与扩展

通过 npm 安装第三方插件(如 uni-ui):

npm install @dcloudio/uni-ui

pages.json 中配置全局组件:

"easycom": {
  "autoscan": true,
  "custom": {
    "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
  }
}

调试与发布

在 HBuilderX 中选择运行到浏览器或模拟器(需安装对应平台工具,如微信开发者工具)。

通过“发行”菜单生成各端应用包:

  • 小程序:导出为微信/支付宝等平台格式。
  • App:生成 Android APK 或 iOS IPA(需配置证书)。
  • H5:部署到 Web 服务器。

性能优化

避免频繁使用 setData,合并数据更新。使用 v-for 时添加 key 属性提升渲染效率。

通过分包加载减少首屏体积,在 pages.json 中配置:

"subPackages": [
  {
    "root": "subpages",
    "pages": [...]
  }
]

常见问题

文本换行问题:使用 <text> 标签而非 <view> 包裹文本,CSS 设置 word-break: break-all

图片路径问题:静态资源建议放在 static 目录,引用时使用绝对路径 /static/logo.png

跨域问题:H5 开发时配置代理,在 manifest.json 中设置:

uniapp使用教学

"h5": {
  "devServer": {
    "proxy": {
      "/api": {
        "target": "http://example.com",
        "changeOrigin": true
      }
    }
  }
}

标签: uniapp
分享给朋友:

相关文章

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…

uniapp 壁纸

uniapp 壁纸

使用 Uniapp 开发壁纸应用的方法 实现壁纸展示与切换功能 在 Uniapp 中,可通过 swiper 组件实现壁纸轮播展示。结合 image 组件加载本地或网络壁纸资源,动态绑定 src 属性实…

uniapp get

uniapp get

uniapp 获取数据的方法 在 uniapp 中获取数据可以通过多种方式实现,包括 API 请求、本地存储、页面传参等。以下是一些常见的方法: API 请求获取数据 使用 uni.request…

uniapp yuv

uniapp yuv

YUV 格式在 UniApp 中的应用 在 UniApp 中处理 YUV 格式数据通常涉及视频编解码、图像处理或摄像头数据采集。YUV 是一种颜色编码系统,常用于视频传输和图像处理,与 RGB 格式相…

uniapp广播

uniapp广播

全局事件通信 在UniApp中实现广播功能可通过全局事件机制完成,适用于跨页面或组件通信。使用uni.$emit、uni.$on、uni.$off等方法实现事件的触发、监听与移除。 发送广播(触发事…