免费试用

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

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的功能,如在线购物、预定酒店、团购优惠、租赁服务等等。下面我将为大家详细介绍安达微信小程序制作开发的
2023-08-09
安徽知识付费类小程序开发团队介绍
安徽知识付费类小程序开发团队是一支专门从事微信小程序开发的团队,专注于知识付费类小程序的开发和运营。主要服务对象是教育、培训、技能提升等领域的机构和个人。现在,随着知识付费行业的发展,越来越多的人们愿意花钱购买知识和技能,为此,知识付费类小程序应运而生。知
2023-08-09
安康旅游小程序开发公司
随着移动互联网的普及,越来越多的人选择通过手机来规划旅游路线,并使用各种旅游软件查询景点介绍、预订酒店、购票等服务。而对于旅行社或旅游公司来说,开发一款自己的旅游小程序,不仅可以提高用户体验,还能够增加品牌曝光度,提高用户留存率。下面本文将为大家介绍一下安
2023-08-09
java开发微信小程序全部课程
Java作为一种编程语言被广泛应用于各种领域,包括微信小程序的开发。下面将详细介绍Java开发微信小程序的全部课程,包括原理和详细介绍。1. 微信小程序介绍微信小程序是一种不需要像APP那样下载安装即可使用的一种小程序,用户可以在微信中直接使用,无需到各个
2023-08-09
ep23小程序开发
小程序是针对微信用户的一种应用程序,它可以在微信应用中进行使用,具有轻量、便捷、实用等特点。在中小型企业、商家、个人等领域,小程序被广泛应用,而且随着智能手机和科技的不断发展,小程序应用越来越多。本篇文章将介绍小程序开发的原理和详细流程。一、小程序开发的原
2023-08-09
app小程序开发代理
APP和小程序是现代移动互联网时代的两种主流应用形态。以APP为代表的原生应用,从开发、部署到用户端的下载运行,涉及到了各种技术问题和用户体验优化,而小程序则通过Web技术实现了许多移动应用的基础功能,能够在不需要下载安装的情况下提供服务和体验。随着小程序
2023-08-09
0基础学会小程序开发
随着互联网的快速发展,各种应用程序层出不穷,小程序也是其中的一个热门应用形式。小程序是一种轻量化的应用程序,无需安装即可直接使用,能够在微信、支付宝等社交平台中与用户进行交互,逐渐成为移动互联网应用的主流形式之一。本文将介绍基础知识让读者了解小程序的原理和
2023-08-09
gcc打包进exe
在本教程中,我们将了解如何使用GCC(GNU编译器集合)将C语言源代码打包成Windows下的可执行文件(*.exe)。我们将首先了解编译原理,然后给出详细的步骤。一、原理介绍:GCC是一个功能强大的编译器,被用于编译许多编程语言(如C、C++和Fortr
2023-05-26
怎么通过开发工具调试小程序码
小程序是一种轻应用,被广泛应用于移动端开发中。小程序开发及测试比较简单,但是针对完整的小程序开发,仍然需要开发者具有一定的开发和调试经验。本文将详细介绍如何通过开发工具调试小程序码,供开发者参考。1. 基本介绍小程序开发工具是微信团队专门为小程序而研发的免
2023-05-26
微信小程序开发工具苹果电脑版
微信小程序是一种基于微信平台的轻量级应用程序,特点是体积小、响应快、易于开发和分享。微信小程序可以在微信内部直接运行,无需下载,可以帮助用户快速获取所需服务,具有非常广泛的应用场景。在开发过程中,微信小程序开发工具是必不可少的工具,本文将为大家介绍微信小程
2023-05-26
百度小程序开发工具怎么打不开
百度小程序是基于微信小程序开发平台的一种新型移动开发平台,提供了一种全新的开发方式,用户可以用现有的HTML、CSS、JavaScript技术以及百度小程序框架、API和工具进行小程序的开发。百度小程序开发工具是进行百度小程序开发的必备工具,但有时候会遇到
2023-05-22
网页端 微信小程序
随着移动互联网的快速发展,微信小程序成为了一种新的应用形态,它不需要下载安装,可以随时随地打开使用,受到了广大用户的欢迎。本文将详细介绍微信小程序的原理和特点。一、微信小程序的原理微信小程序是一种基于微信平台的轻应用,它可以在微信客户端中直接运行,无需下载
2023-04-06