免费试用

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

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


相关知识:
百度开发小程序需要什么技术支持呢
百度小程序是一种运行在百度App内的开发框架,它允许开发人员使用HTML、CSS和JavaScript构建跨平台的应用程序。百度小程序可以在百度App中直接使用,无需安装,用户可以即时地享受到应用程序提供的功能。百度小程序的开发主要依赖以下几个方面的技术支
2023-08-23
安阳安卓小程序开发公司地址
安阳安卓小程序开发公司是一家专门从事小程序开发的公司,本公司位于安阳市文峰区金都广场写字楼,交通便利,环境优雅。小程序是一种轻量级的应用程序,它可以在微信、支付宝等平台中运行,具有占用空间小、便于分享、易于获取的特点,一般用于需求简单、运用场景明确的场合。
2023-08-09
安徽婚纱摄影小程序开发价格多少
安徽婚纱摄影小程序开发价格的确定主要取决于以下几个因素:1. 小程序的功能需求婚纱摄影小程序的功能需求主要包括拍摄、选片、修图、打印、定制等等方面。不同的功能对小程序的开发成本有不同的影响,因此,必须在项目启动前确定所有的功能需求。2. 小程序的设计和页面
2023-08-09
flutter开发微信小程序实战
Flutter 是一款功能强大的开源移动应用框架,由 Google 开发和维护。Flutter 可以同时在 iOS 和 Android 平台上构建高质量的移动应用程序,它是面向对象、声明式的编程框架,并支持加速渲染技术。与传统基于 WebView 技术的微
2023-08-09
go项目打包exe
## Go项目打包成可执行文件(EXE)Go是一种编程语言,它出色的性能及跨平台特性优势让许多开发人员愿意使用Go语言来构建各种应用程序。在某些场景下,我们需要将Go项目打包成可执行文件(EXE),以便在没有安装Go环境的计算机上执行。本教程将详细介绍如何
2023-05-26
智能硬件类小程序开发工具有什么
智能硬件类小程序开发工具主要是针对智能硬件和智能设备开发而设计的一种工具,主要用于快速搭建和开发智能设备的第三方应用。对于企业和开发者来说,智能硬件类小程序开发工具具有几个重要的作用:提高开发效率、降低开发成本、增加智能硬件与用户的互动和营销。目前市面上的
2023-05-26
中文微信小程序开发工具
微信小程序是一种新兴的移动应用程序开发方式,它具有应用程序的交互性和可操控性,同时具有Web应用程序的开发效率和易于维护性。为了方便开发者快速地开发小程序,微信团队开发了一款名为“小程序开发工具”的开发环境,该工具可以提供一个全面的解决方案来帮助开发者完成
2023-05-26
微信小程序辅助开发工具
微信小程序辅助开发工具是一种在微信小程序开发中辅助开发的工具。它涉及到的技术包括了大量前端和后端的技术,使得我们的开发流程得到了极大地简化和优化。其原理可概括为:通过工具客户端与微信开发者工具之间的通信,实现对微信开发者工具的调用,从而进一步实现辅助开发工
2023-05-26
微信小程序开发工具如何调试
微信小程序开发工具是一款由微信官方推出的集成开发环境,是开发者开发微信小程序的重要工具之一。通过微信小程序开发工具,我们可以方便地进行代码编写、调试、预览等操作。在微信小程序开发的过程中,调试功能尤为重要,它能够帮助我们发现代码中的问题,修复错误,并确保我
2023-05-26
江西直播类小程序开发工具
随着互联网技术的不断发展和普及,移动互联网和直播技术已经成为当今社会中最受欢迎和使用最广泛的技术。在江西,越来越多的机构、企业和个人开始关注直播技术,开始开发各种直播类小程序,比如在线教育、在线直播、互动直播等等。江西直播类小程序开发工具是一种非常便捷和高
2023-05-26
创维小程序开发工具
创维小程序开发工具是一款运行于创维智能电视等智能设备的小程序开发工具。通过该工具,开发者可以方便地快速开发和发布小程序,并提供给用户进行使用。原理创维小程序开发工具基于微信小程序开发方案进行开发。它采用了类似于H5的开发模式,开发者通过编写HTML、CSS
2023-05-22
百度抖音小程序开发工具有哪些
百度抖音小程序开发工具是一种新型的应用程序开发工具,可以帮助开发者快速地构建小程序并在抖音平台上进行发布。它采用了微信小程序的开发框架,使得开发者可以用熟悉的技术栈进行开发,并且还提供了一些额外的API和工具,以满足抖音平台的特殊需求。本文将介绍百度抖音小
2023-05-22