免费试用

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

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 开发微信小程序的开发者来说,意味着他们不再需要为每个平台编写单独的代码,节省了很多时间和精力。


相关知识:
阿坝支付宝小程序开发联盟官网
阿坝支付宝小程序开发联盟官网是一个集成了支付宝小程序开发相关资料和技术支持的平台。作为一个小程序开发者,你可以在这里学习如何开发小程序、如何使用支付宝小程序开发工具以及如何发布小程序等内容。阿坝支付宝小程序开发联盟官网通过一个清晰、易于使用的导航菜单,让开
2023-08-09
安徽自由开发者小程序是什么
安徽自由开发者小程序是一款基于微信开发者工具的服务,它允许开发者更为方便地进行小程序开发。下面本文将对安徽自由开发者小程序的原理和详细功能进行介绍。一、开发环境安徽自由开发者小程序的开发环境是微信公众平台提供的小程序开发者工具。开发者在开发环境中,可以自主
2023-08-09
安卓开发小程序简单还是app
随着智能手机的普及,移动应用程序(APP)的开发和使用变得越来越普遍。然而,开发APP需要一定的开发知识和经验,对于初学者来说可能会比较困难和复杂。此时一个简单易用、入门门槛低的小程序就显得格外重要。小程序是一种运行在移动设备上的应用程序,与APP相比,它
2023-08-09
安卓开发包括小程序吗
安卓开发不包括小程序,因为小程序通常是在微信或其他应用程序中运行的基于web的应用程序。小程序是一种轻量级的应用程序,可以在用户无需下载或安装的情况下直接运行。它们通常被视为一种快速响应市场需求的方式,并且被广泛应用于电子商务、生活服务、媒体娱乐和教育等领
2023-08-09
安卓可以开发小程序
安卓可以通过开发小程序来让用户更方便地访问应用,同时也更加节省设备存储和带宽。小程序的概念在2016年由微信首先提出,随后也被支付宝、百度、今日头条等巨头公司采纳,迅速地发展壮大。开发安卓小程序的方法有多种,以下详细介绍其中几种常用的方法。1.使用Flut
2023-08-09
wepy框架开发小程序总结
wepy 是一套使用类 Vue 开发小程序的框架。它的出现使得小程序开发者可以享受到类似 Vue 一样的组件化方式、computed、watch 等特性,大幅提高了小程序开发效率和代码可维护性。wepy 的设计思想是 "开发小程序像写 Vue",开发者编写
2023-08-09
vue框架能开发微信小程序吗
Vue框架是一款流行的前端JavaScript框架,适用于构建大型单页Web应用程序(SPA)。但是,我们是否可以使用Vue框架来开发微信小程序?答案是肯定的。在过去,微信小程序只能使用微信小程序原生框架进行开发。虽然原生框架提供了良好的开发体验和性能,但
2023-08-09
vscode扩展小程序开发助手
微信小程序是一种轻量级的应用程序,由于其一键扫码就可打开,不需要下载安装的特点,被越来越多的人所喜欢和使用。而在小程序开发过程中,开发者需要在微信开发者工具中进行开发和调试,繁琐的操作流程会影响到开发工作的效率和体验。因此,很多的开发者都选择使用 VS C
2023-08-09
微信开发工具小程序怎么发布商品图片
微信小程序开发工具是一款专门用于开发、调试、发布微信小程序的工具。在小程序中,发布商品图片是很常见的需求,如果你是刚刚开始开发小程序的开发者,可能还不太清楚如何来完成这个需求。本篇文字将会为大家介绍微信开发工具小程序发布商品图片的详细流程和原理。一、小程序
2023-05-26
上海建材行业小程序开发工具公司
上海是中国最具有经济活力的城市之一,拥有众多的企业和产业,其中建材行业是其中之一。而随着移动互联网技术的快速发展和普及,企业如何在数字化时代获取更多的市场份额成为了关键问题。于是,许多企业开始采取小程序的方式来推广和经营自己的商业活动。本文将介绍上海建材行
2023-05-26
山西自助洗车小程序开发工具有哪些品牌
自助洗车小程序是一种快速、便捷、高效的智能洗车解决方案。许多地方的自助洗车小程序得到了广泛的应用。山西省也不例外。随着智能洗车行业的迅速发展,越来越多的山西自助洗车小程序正在涌现。下面我们将介绍一些在山西自助洗车小程序开发工具中比较著名的品牌:1. 微信小
2023-05-26
ios微信小程序开发工具
iOS微信小程序开发工具是一款为微信公众号提供的开发工具,可以让开发者利用HTML、CSS和JavaScript轻松地创建小程序。在使用本工具之前,您需要先了解微信公众平台小程序的概念,以及微信小程序运行的基本原理。微信小程序是一种新型的互联网应用,它可以
2023-05-22