免费试用

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

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
unit开发小程序
小程序是近年来流行的一种应用程序,它可以在微信等社交平台中运行,为用户提供各种功能。而在小程序的开发过程中,比较常用的框架之一就是`uni-app`。本文将介绍`uni-app`开发小程序的原理和详细过程。## uni-app介绍`uni-app`是一个基
2023-08-09
asp小程序开发
ASP(Active Server Pages)是一种在服务器上运行的动态网页技术,它将动态脚本(通常是VBScript或JScript)嵌入到HTML页面中,这些动态脚本能够生成动态内容。ASP是微软公司最初开发的,现在已成为一个国际标准。ASP程序通常
2023-08-09
java开发软件exe
Java开发软件EXE(可执行文件)原理及详细介绍Java是一种跨平台的编程语言,通常情况下,Java程序会被编译成.class字节码文件,而这些字节码文件需要通过Java虚拟机(JVM)来运行。然而,我们也可以将Java程序创建为EXE文件,这样用户无需
2023-05-26
flash打包的exe文件
在这篇文章中,我们将详细介绍Flash打包的exe文件,以及它们的原理和应用场景。这将帮助您更好地了解这种文件格式,以及如何将其用于自己的项目中。**1. 什么是Flash?**Flash是Adobe公司开发的一种多媒体平台,旨在创建动画、交互式多媒体内容
2023-05-26
小程序模块化开发工具
随着小程序越来越流行,小程序的开发工具也越来越发达。其中一种比较常见的小程序开发工具就是模块化开发工具。所谓模块化开发工具,即将一个小程序项目拆分成多个独立的模块,每个模块具有独立的功能和设计,方便开发者分工合作,也便于项目维护和升级。模块化开发工具的原理
2023-05-26
小程序开发工具全项目查找方法
小程序开发工具是微信开发团队推出的一款针对微信小程序开发者进行研发的一款完整开发平台,其具有对开发的支持及配合功效。在使用小程序开发工具过程中,开发者需要常常用到全项目查找方法,因此在本文中,将对小程序开发工具全项目查找的原理及详细使用方法来进行讲解。一、
2023-05-26
昆明小程序开发工具代理加盟
昆明小程序开发工具代理加盟是指企业或个人购买小程序开发工具代理的权利,并使用其在昆明地区销售、推广该工具的服务方式。这种加盟形式是一个以零售商和经销商为主导的商业合作模式,可有效促进小程序开发工具的市场销售和品牌推广。小程序开发工具代理加盟的原理是将小程序
2023-05-26
甘肃微信小程序开发工具多少钱一台
甘肃微信小程序开发工具是指用于开发和编写微信小程序的软件工具,目前市面上主要有微信官方提供的开发者工具和第三方开发工具。微信官方提供的开发者工具是免费的,任何人都可以在官网上进行下载。同时,微信官方也经常更新工具的版本,以适应新的开发需求和功能。使用微信官
2023-05-22
定制化小程序开发工具是什么
随着移动互联网的普及和发展,小程序逐渐成为了人们生活中的一种常见形式。人们通过小程序可以方便快捷地获取各种信息、完成各种交易。而在小程序的开发中,定制化小程序开发工具也逐渐被人们所熟知,它可以帮助小程序开发者更加快捷、高效的完成小程序的开发。定制化小程序开
2023-05-22
微信小程序苍穹剑诀游戏好玩嘛?
微信小程序苍穹剑诀是一款基于微信小程序平台开发的游戏应用。它是一款以武侠为主题的冒险游戏,玩家可以在游戏中扮演主角,探索江湖世界,完成各种任务,提升自己的实力。游戏中的主要操作是通过屏幕上的虚拟摇杆和按钮来控制角色移动和攻击。
2023-04-06
微信小程序商城解决方案
微信小程序商城是一种基于微信小程序平台的电子商务解决方案,它可以帮助企业快速搭建自己的微信小程序商城,实现商品展示、订单管理、支付结算等功能,为企业提供全方位的电商服务。微信小程序商城的原理是基于微信小程序平台的开发框架,使用前端技术实现页面展示和用户交互
2023-04-06