免费试用

跨平台小程序在线开发工具,用做网页的技术做小程序,兼容微信、支付宝、抖音、快手、百度等主流小程序平台!

uni-app 开发微信小程序

uni-app 是一个跨平台开发框架,能够将一份代码同时编译成各个平台的应用,包括微信小程序等。下面详细介绍 uni-app 在开发微信小程序时的工作原理。

## uni-app 的架构

uni-app 框架基于 Vue.js 开发,它为开发团队提供了一站式的解决方案,包括了前端框架、开发工具和发布平台。uni-app 把小程序原生 API 封装成一套统一的 API,在开发时可以根据条件选择调用底层 API 还是微信小程序 API。

下面是 uni-app 的架构图:

![uni-app 架构图](https://cdn.nlark.com/yuque/0/2022/png/3530867/1644367366193-4d559824-5f55-4599-a75c-d5794cafec35.png)

uni-app 的架构可分为三层:

- 面向开发者的框架层:提供了丰富的组件和 API,以及开发工具集成成的开发环境;

- 面向平台的渲染层:uni-app 框架会将运行在特定平台上需要执行的代码编译成对应平台所能执行的代码,同时以统一的方式提供对应平台的原生能力;

- 原生平台 SDK 层:用于让 uni-app 能够在各个不同的平台上编译运行。

## 微信小程序开发的原理

从 uni-app 框架到微信小程序,涉及了两个平台:

1. uni-app 平台

2. 微信小程序平台

### uni-app 平台

uni-app 平台的架构图如下所示:

![uni-app 平台](https://cdn.nlark.com/yuque/0/2022/png/3530867/1644368156764-30ba490a-b277-4e09-814b-2cf9e6c69ec0.png)

uni-app 开发者会使用到 IDE 开发工具或命令行工具进行编写程序,并在平台上运行同步开发的调试工具。运行时通过 Runtime 层将 vue 模板编译成对应平台的代码。

### 微信小程序平台

微信小程序的架构图如下所示:

![](https://cdn.nlark.com/yuque/0/2022/png/3530867/1644368276823-ac007eb1-1d5c-4474-bf1b-9d7f655b285e.png)

Micro-parser 负责解析 JS、WXML 和 WXSS 文件,解析后得到相应的 AST。在运行时,会通过小程序的 API 将解析后的 AST 渲染到屏幕上,用户和开发者就可以看到渲染后的效果。

### 微信小程序与 uni-app 的对接

接下来,从 uni-app 平台出发,介绍微信小程序与 uni-app 是如何对接的。

#### 小程序的环境兼容处理

微信小程序官方原始的接口与 uni-app 平台赋予了很多基于 Web 标准的 API,同时貌似也对原生的接口做了一些封装。uni-app 的开发者在使用习惯和性能方面也与原始的小程序开发者的体验不相同。因此 uni-app 把原小程序接口进行了再封装,并提供了对应的框架接口。

比如 uni-app 将触摸事件封装成了 vue 的 DOM 事件,又将小程序的 wxss 编译成了 CSS 标准的语法,封装出了 Page、Component 和 App 等不同快照(snapshot)形式的组件。

#### 编译

uni-app 中的对应同名组件是在渲染树与WXML 渲染树匹配时使用的。在当前这个组件加载时,会在开发环境先去加载它们在 WXML 上的子树,之后认真看上去匹配它在注册中定义的 Component 部分。这里是 Vue.js 组件渲染分离的体现。

下面是 uni-app 编译流程:

- 通过 babel 将源码转化为标准的 ES5 代码

- 将 HTML、CSS、JS 同时编译成小程序可直接使用的代码

- 使用微信 IDE 相应的工具进行编译打包

#### 运行

运行时 uni-app 用代码根据小程序 Page、Component 和 App 注册项自动创建生成内部的 Vue 实例,完整地将当前页面、组件等进行封装。

总之,uni-app 知道如何编译一个小程序,将组件编译为如何从小程序实例上的属性或方法等相关的访问。这是一个函数,会将小程序的属性作为组件的属性传入 vue 实例,然后渲染组件中的子结构。

## 总结

综上所述,uni-app 使用一些框架技巧以及原生的小程序 API,在编写 App 和小程序时,采用了同一份代码,运行时自动适配平台。因此,uni-app 将小程序变得更加简单方便,这种技术架构对于使用 uni-app 开发微信小程序的开发者来说,意味着他们不再需要为每个平台编写单独的代码,节省了很多时间和精力。


相关知识:
百度小程序开发者工具上传模板是什么
百度小程序开发者工具是一款由百度官方提供的集成开发环境(IDE),旨在帮助开发者快速、高效地开发小程序。在使用开发者工具时,开发者需要上传模板,以便创建自己的小程序。上传模板是指将一个已有的小程序项目(也可以是百度小程序官方提供的示例项目)通过开发者工具上
2023-08-23
阿拉丁指数小程序开发
阿拉丁指数小程序是腾讯推出的一项针对小程序开发者的数据工具,它可以帮助开发者更好的了解和分析自己的小程序在微信平台上的表现情况。下面我们将从阿拉丁指数的原理和详细介绍两个方面来介绍这项小程序开发工具。一、阿拉丁指数的原理阿拉丁指数本质上是一种小程序访问量的
2023-08-09
安徽自助洗车小程序开发工具有哪些品牌
自助洗车在中国的市场上已经非常普及,这种方式可以省去等待洗车工人的时间,并且可以得到更好的洗车体验。而对于洗车服务提供商来说,自助洗车也是一种更高效的方式,可以减少人力成本和管理难度。随着技术的不断发展,自助洗车小程序也出现在人们的视野中,它可以让用户方便
2023-08-09
安徽百度小程序注册开发商
百度小程序是一种类似于微信小程序的应用,与微信小程序不同的是,它是基于百度智能小程序开发的,适用于百度搜索、百度地图、百度知道等各种平台。如果你想要注册成为百度小程序开发商,需要完成以下步骤:1. 进入百度智能小程序的官方网站,点击“开发者中心”进入。2.
2023-08-09
idea uniapp开发微信小程序
Uniapp是一款基于Vue.js的开发框架,可以让开发者用一套代码同时开发出跨平台的应用,包括微信小程序、H5、Android和iOS应用。在Uniapp中,如何使一个Vue页面能够变成一个微信小程序呢?这就需要使用到Uniapp的微信小程序编译器。一、
2023-08-09
遵化小程序开发工具招聘
遵化小程序开发工具是一款针对微信小程序的开发环境,帮助开发者完成从小程序的设计、编码、预览、发布等各个方面的工作。下面将详细介绍遵化小程序开发工具的原理和使用。一、原理1.前端开发语言:微信小程序官方支持使用WXML(WeiXin Markup Langu
2023-05-26
jar打包exe文件
## Java应用程序打包成EXE文件 将Java应用程序打包成EXE文件,可以使应用程序更容易在用户的电脑上运行,而无需他们单独安装Java。本教程将向您介绍如何打包Java应用程序(JAR)为一个可执行的Windows(EXE)文件。### 原理JAR
2023-05-26
小程序简易开发工具怎么用
小程序简易开发工具是微信小程序提供的一款可视化开发工具,通过它,可以快速地进行小程序的开发和调试,不需要懂太多的编程知识。小程序简易开发工具的使用首先,在微信小程序官网下载和安装小程序简易开发工具。打开小程序简易开发工具后,点击新建项目,填写项目名称、Ap
2023-05-26
小程序开发工具官方下载地址
小程序开发工具是用于开发微信小程序的工具,提供了编写、调试、上传微信小程序以及查看和分析小程序数据等功能。下面将介绍小程序开发工具的官方下载地址以及其原理和详细介绍。一、小程序开发工具官方下载地址小程序开发工具可以在微信公众平台上进行下载,具体的下载地址为
2023-05-26
西安微信小程序开发工具不联网可以用吗知乎
微信小程序开发工具是一款基于微信开发者工具平台,用于开发微信小程序的软件工具。通常情况下,开发工具需要联网才能使用,因为其核心功能都需要通过网络实现。但是,如果您想在没有网络环境的情况下使用微信小程序开发工具,是可以实现的。下面我将从两个方面来介绍为什么可
2023-05-26
佛山好的微信小程序开发工具
微信小程序是当前移动互联网领域最为热门的应用之一,不少企业和个人都希望能够开发出自己的微信小程序。佛山是一座经济发达的城市,很多企业和个人都在探索微信小程序的开发和应用。下面介绍一些佛山好的微信小程序开发工具,以供参考。1. 小程序开发者工具 微信提供了一
2023-05-22
ubuntu安装微信小程序开发工具
微信小程序是近年来非常火热的一项技术,是一种创新的移动应用开发方式。为了让开发者能够更方便地进行微信小程序的开发,微信提供了一款名为小程序开发工具的软件。本文将详细介绍在Ubuntu系统上安装微信小程序开发工具的方法和原理。1. 安装 Wine微信小程序开
2023-05-22