免费试用

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

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-23
阿里巴巴小程序开发模板
阿里巴巴小程序是国内知名电商平台阿里巴巴推出的一款移动应用程序,为中小商户提供了一种便捷、简单、快速的搭建电商平台的方式。小程序采用了基于 WebView 的技术,大大降低了开发成本和运营成本,同时也提升了用户的体验感。本文将详细介绍阿里巴巴小程序的开发模
2023-08-09
安徽瑜伽小程序开发制作公司有哪些
安徽瑜伽行业近年来有了快速的发展,成为了很多人的健身新宠。而随着移动互联网和智能设备的普及,越来越多人开始通过小程序来获取相关信息和方便快捷的服务。因此,开发一款瑜伽小程序变得尤为重要。1. 雷神云瑜伽小程序开发雷神云推出的一种新型微信小程序瑜伽运动教育平
2023-08-09
uniapp开发微信小程序视频教程
Uniapp是一套基于 Vue.js 的多端开发框架,可以一次编写多个端的代码,包括微信小程序、H5、App等。在Uniapp上编写小程序,可以兼容多端,从而节省开发成本和时间。本文将详细介绍如何使用Uniapp开发微信小程序。1. 环境准备- 安装 HB
2023-08-09
react 微信小程序开发
React微信小程序开发是指使用React框架进行微信小程序的开发。React是由Facebook开发的一种JavaScript库,主要用于构建用户界面(UI)。微信小程序则是微信开发的一种轻量级应用程序,具有跨平台、开发简单、易于分享等优点。下面从原理和
2023-08-09
html封装exe代码
在这篇文章中,我将向您介绍如何将HTML应用程序封装成一个独立的可执行文件 (EXE),以及这个过程背后的原理。这可以让您的HTML应用程序在没有安装浏览器的情况下在客户端计算机上运行,同时保持跨平台功能的优势。原理:将HTML应用程序封装成EXE实际上是
2023-05-26
小程序开发工具内网
小程序开发工具内网,指的是使用小程序开发工具进行开发时,可以选择将开发环境部署在本地,也可以选择部署在内网环境中。这样做的最大好处就是可以在不联网的情况下进行开发,大大提高了开发效率和保证了数据的安全性。那么,小程序开发工具内网到底是怎么运作的呢?下面,我
2023-05-26
小程序开发工具不能调试
小程序开发工具是一个非常常用的开发环境,但是在使用它时,有时候可能会遭遇到一个比较令人头疼的问题:无法调试。为什么会出现这个问题呢?我们可以通过以下角度来详细介绍为什么小程序开发工具无法调试。1. 端口被占用在使用小程序开发工具进行调试时,它需要通过端口与
2023-05-26
昆明微信小程序开发工具有哪些软件
昆明是一座发展迅速的城市,越来越多的企业和个人开始尝试开发微信小程序来推广自己的业务或创意。在开发微信小程序的过程中,选择一款好用的开发工具至关重要。以下是昆明微信小程序开发工具的详细介绍。1. 微信小程序开发工具微信小程序开发工具是微信官方提供的一款开发
2023-05-26
开发工具更新后上传小程序
小程序是一种轻量级的应用程序,开发者可以使用开发者工具来为小程序进行开发和维护。随着开发者工具的不断更新,小程序的开发也从此更加简单和方便了。下面将详细介绍开发工具更新后上传小程序的原理和步骤。1. 准备工作在上传小程序之前,需要先准备好开发者工具和小程序
2023-05-26
北海微信小程序开发工具有哪些
北海微信小程序开发工具是一款专门用于开发微信小程序的工具,它可以帮助开发者快速创建和调试微信小程序,实现小程序的开发和调试。以下是关于北海微信小程序开发工具的详细介绍和原理:一、北海微信小程序开发工具介绍北海微信小程序开发工具是由微信官方推出的一款开发工具
2023-05-22
小程序怎么包装成app
小程序是一种轻量级的应用程序,它可以在微信等平台上直接使用,不需要下载和安装,因此受到了很多用户的欢迎。但是,对于一些企业或者开发者来说,他们希望将自己的小程序包装成APP,这样就可以更好地推广和使用。下面,我们来详细介绍一下如何将小程序包装成APP。一、
2023-04-06