免费试用

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

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
安徽互联网创业平台小程序开发方案
安徽互联网创业平台小程序是一款基于微信生态的应用程序,它具有轻便、易用的特点,可以为创业者提供全面的创业资源、交流平台和服务支持等功能。小程序的开发需要技术人员对微信小程序的开发原理和相关技术有一定的了解。接下来,我将从以下几个方面介绍小程序的开发原理和详
2023-08-09
安康扶贫电商小程序开发方案
安康扶贫电商小程序是基于微信小程序平台的一款扶贫电商应用,旨在帮助当地贫困地区的农民通过互联网平台进行农产品销售,提高销售额、增加收入,从而改善贫困地区农民的生产生活水平。首先,安康扶贫电商小程序的开发是需要技术专业人员的。开发团队需要熟悉微信小程序的技术
2023-08-09
安康外卖小程序开发
随着手机普及和外卖市场的不断扩大,安康外卖已经成为很多人生活中必不可少的一部分。传统的电话订餐方式已经逐渐被外卖APP和小程序所替代。在这个背景下,安康外卖小程序应运而生。安康外卖小程序是指基于微信公众平台开发的一种外卖点餐小程序,用户可以在微信上直接使用
2023-08-09
vue能开发微信小程序
Vue.js 是一个小巧且高效的 JavaScript 框架,依赖于虚拟 DOM,能够快速响应数据变化,适合用于构建现代化的单页面应用程序。小程序是一种在微信客户端内运行的轻量级应用,使用微信提供的 API 进行开发。开发小程序需要使用特定的开发工具和语言
2023-08-09
mpvue开发小程序数据请求
mpvue是一个使用Vue.js开发小程序的框架,其数据请求的方式和Vue.js类似。在mpvue中,我们可以使用Vue.js的生命周期函数或mpvue提供的一些钩子函数来进行数据请求。1. 原生API方式mpvue支持原生的微信小程序API请求方式,可以
2023-08-09
app开发和微信小程序有什么区别
app开发和微信小程序都是现今移动互联网领域最热门的技术之一,但两者之间还是存在一些不同的。本文将就这两者的原理、开发方式和特点进行介绍。一、原理1. app开发的原理app开发是指开发移动应用程序的过程,使用的技术包括Java、Objective-C/S
2023-08-09
遵化小程序开发工具
遵化小程序开发工具是一款专门用于开发小程序的工具,它采用了类似于网页开发的技术,使用HTML、CSS、JavaScript等前端技术,开发者可以使用遵化小程序开发工具来编写小程序,并在微信等平台上实时查看效果。本文将对遵化小程序开发工具的原理和详细介绍作一
2023-05-26
山西知识付费类小程序开发工具有哪些
山西是一个历史悠久的省份,人文底蕴深厚,有着众多文化遗产和知名高校,因此知识付费类小程序在这里也颇受欢迎。下面将简要介绍几种山西知识付费类小程序开发工具。1. 微信小程序开发工具微信小程序开发工具是微信开发者团队推出的一款开发工具,可以通过官方提供的开发文
2023-05-26
linux微信小程序开发工具
随着微信小程序的兴起,它已经成为了许多开发者喜欢的一个开发环境。但是,微信小程序的官方开发工具在Linux操作系统上并不支持,而且很多第三方开发工具也不能很好地支持Linux平台。因此,本篇文章将介绍如何在Linux环境中使用微信小程序开发工具。微信小程序
2023-05-22
小程序cps是什么意思?
小程序CPS是指通过推广小程序产品,达成一定的转化后获得佣金的一种推广方式。以下是小程序CPS的原理和详细介绍。
2023-04-06