免费试用

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

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
zedu小程序商城开发
随着智能化时代的来临,越来越多的用户喜欢使用小程序购物。因此,很多企业开始考虑开发自己的小程序商城来满足用户需求。在小程序商城开发中,Zedu小程序商城是一种特别流行的商城,下面将详细介绍Zedu小程序商城开发的原理及其具体步骤。一、Zedu小程序商城开发
2023-08-09
python开发小程序后台
Python作为一种快速、简单的编程语言,近年来越来越受欢迎。Python开发小程序后台不仅可以提高开发效率,同时也可以提高小程序的性能和可靠性。Python可以用于开发多种小程序后台,包括游戏、社交、工具等。Python中开发小程序后台的方法有很多,以下
2023-08-09
php全栈开发各种小程序app
PHP全栈开发可以用于各种平台的小程序和APP开发,如Android、iOS、微信小程序等。下面就来介绍一下PHP全栈开发各种小程序APP的原理和详细介绍。一、PHP全栈开发基本框架PHP全栈开发的基本框架主要包含以下几个方面:1. 操作系统:Linux、
2023-08-09
js小程序开发框架
JavaScript小程序开发框架是一种用于编写小型网页应用程序的框架,使用纯JavaScript编写。该框架将所有的应用程序代码和样式表都嵌入到一个HTML文件中,并使用JavaScript脚本来控制界面和表现层。下面是关于JavaScript小程序开发
2023-08-09
jquerymobile小程序开发
jQuery Mobile是一个开源的JavaScript库,用于创建跨平台的移动App应用程序。它是基于jQuery核心框架开发的,可以方便地实现响应式Web页面和Hybrid App应用程序的开发。其中,Hybrid App是在Web技术和Native
2023-08-09
java开发微信小程序的流程
Java开发微信小程序需要遵循以下步骤:一、注册微信小程序账号如果您要开发微信小程序,首先需要去微信公众平台注册开发者账号,然后在小程序管理后台申请小程序,成功审核后,便可以开始开发。二、准备开发环境微信小程序采用的是一种类似于 HTML/CSS/Java
2023-08-09
html5开发微信小程序
HTML5可以开发微信小程序,这是利用微信小程序提供的基于webview的开发模式,开发者可以通过HTML5的技术来开发微信小程序,包括HTML、CSS、JavaScript等网页前端技术。下面将详细介绍HTML5开发微信小程序的原理。微信小程序的开发基于
2023-08-09
小程序开发工具苹果电脑下载不了
小程序开发工具是微信官方推出的一款针对小程序开发的集成开发环境(IDE),提供代码编辑、调试、上传等功能。在使用小程序开发工具时,我们可能会遇到一个问题——苹果电脑无法下载小程序开发工具。这是因为小程序开发工具采用的是微信开发团队自主开发和定制的 NW.j
2023-05-26
微信开发工具上传小程序代码
微信开发工具是一款官方提供的小程序开发辅助工具,可以帮助开发者进行小程序项目的开发、调试、预览和发布等操作。在开发完成后,需要将代码发布到微信小程序平台供用户使用。如何上传小程序代码呢?下面就为大家介绍一下上传小程序代码的原理和详细过程。1. 前置条件在上
2023-05-26
微信小程序开发工具最低配置多少
微信小程序开发工具是一款基于Web开发的IDE(集成开发环境),主要用来开发微信小程序。它支持实时预览,自动编译,自动保存,代码高亮等功能,可以有效提高开发效率。但是,由于功能较为复杂,所以相应的硬件要求也较高。下面我们来了解一下微信小程序开发工具的最低配
2023-05-26
网站小程序系统定制开发工具
网站小程序系统定制开发工具是一种用于快速构建网站和小程序的开发工具,具有高度的可扩展性和灵活性。这种工具可以基于现有框架和模板,快速构建定制化的网站和小程序,轻松满足用户不同的需求和要求。网站小程序系统定制开发工具的原理是基于模块化的思想来实现的,可以通过
2023-05-26