免费试用

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

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


相关知识:
wepy开发百度小程序
Wepy是一个类Vue语法规则的小程序开发框架,可以让开发者使用组件化、模块化和异步编程的方式来开发小程序。Wepy在开发小程序时,提供了类Vue编写方式和一些额外的组件属性,可以让开发者快速的构建一个小程序应用。 Wepy基本组成部分首先我们来看看wep
2023-08-09
text3开发微信小程序呢
微信小程序是一种轻量级的应用程序,在微信生态中独立运行,不需要下载安装即可使用。微信小程序开发主要采用的是前端技术,如HTML、CSS和JavaScript。小程序的运行环境和API都是由微信官方提供的,开发者只需要按照一定规则来编写代码即可。原理:微信小
2023-08-09
saas微信小程序开发工具
SAAS微信小程序开发工具是一种基于云计算技术的开发方式,其原理是使用云端平台提供的软件开发服务,为开发者快速构建小程序提供技术支持。它的主要功能包括模板设计、代码编辑、版本控制、部署管理等。下面就让我们一一解析。一、模板设计模板设计是SAAS微信小程序开
2023-08-09
saas 模板开发小程序
在互联网产品开发中,SaaS(软件即服务)模式的应用非常普遍。SaaS模式中,用户无需购买软件的许可证,只需要在云端使用服务,即可轻松获取软件的功能。而小程序,作为一种轻量级的应用程序,也逐渐受到了越来越多开发者和用户的关注。那么,如何将SaaS模板与小程
2023-08-09
react能开发小程序吗
React 是一个用于构建用户界面的 JavaScript 库。它在构建大型、高度可定制的 Web 应用程序方面表现出色,但它是否适合开发小程序呢?答案是肯定的。在本篇文章中,我们将详细介绍 React 在小程序开发中的原理和适用情况。首先,我们需要了解一
2023-08-09
egret微信小程序开发学习
Egret微信小程序开发是一种基于微信开发平台的轻量级应用,能够在微信生态内进行部署和分享。它以其简洁、高效的特点,备受开发者们的欢迎。接下来,就让我们一起来了解Egret微信小程序开发的原理和详细介绍吧。一、Egret微信小程序开发的原理Egret微信小
2023-08-09
app开发微信小程序的踩坑日记
微信小程序是近年来比较热门的一种开发方式,它具有轻便、快速上线、不需下载安装等优点,得到了越来越多的开发者的关注。然而,开发小程序并非一帆风顺,也会遇到许多坑,下面列举一些我在开发小程序中遇到的问题和解决思路,希望对大家有所帮助。1. 小程序的生命周期小程
2023-08-09
微信小程序快速开发工具
微信小程序是一种轻量级的应用程序,具有轻便、快捷的特点,可以在微信中直接运行,不需要下载安装。微信小程序的开发需要使用一些开发工具,其中包括微信开发者工具、第三方框架和插件等。本文将详细介绍微信小程序快速开发工具的原理和使用方法。一、微信小程序开发者工具微
2023-05-26
微信小程序开发工具下载安装
微信小程序是一种轻量级的应用程序,不需要下载和安装即可在微信中使用。相比于传统应用程序,微信小程序占用空间少、启动迅速、使用方便,因此备受用户喜爱。与此同时,微信小程序的开发也变得越来越受到开发者的青睐。为了帮助大家更好地了解微信小程序的开发和使用,本文将
2023-05-26
海南点餐小程序开发工具大全图
海南点餐小程序是一种基于微信平台开发的点餐应用程序,可以帮助顾客在线点餐、预约、支付等。这种小程序具有开发简单、实用性强、易于推广等特点,因此被广泛应用于餐饮业。接下来,我将介绍一些海南点餐小程序开发工具,以帮助开发者更好地进行开发。1. 微信小程序开发工
2023-05-22
桂林教育小程序开发工具在哪里
桂林市教育局开发的小程序是为了实现学校、教师和家长之间更加高效、快捷、便利的信息沟通和交流而研发的一款应用程序。它不仅可以提供课表、作业、考试安排等基础信息,还能提供家长会、教师评价等功能。桂林教育小程序的开发工具可以在微信公众平台上进行,由于小程序是在微
2023-05-22
xp系统微信小程序开发工具
微信小程序是一种全新的应用形态,可以在微信中免下载安装使用。对于开发者来说,微信小程序的开发工具是必不可少的,XP系统则是一款常用的开发工具之一。下面详细介绍一下XP系统微信小程序开发工具的原理和使用方法。一、XP系统微信小程序开发工具原理XP系统是集成了
2023-05-22