免费试用

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

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-23
阿里的微信小程序开发框架是什么
阿里的微信小程序开发框架是“Ant Mini Program”,它是蚂蚁金服旗下的小程序框架,为微信小程序提供了更多的功能。Ant Mini Program基于Ant Design风格进行设计,为微信小程序提供了完整的开发解决方案。Ant Mini Pro
2023-08-09
安阳开发小程序合作商户
随着移动互联网时代的到来,小程序逐渐成为了一个不可或缺的存在。它不仅可以为用户提供便利,而且也可以为商家带来巨大的商机。安阳作为一个发展迅速的城市,也在逐渐形成自己的小程序合作商户生态圈。小程序合作商户是指在微信小程序平台上注册并发布产品或服务的商家或个人
2023-08-09
安宁小程序开发制作平台
安宁小程序开发制作平台是一款可以让用户无需编写代码,就可以轻松制作小程序的平台。它采用所见即所得的方式,将小程序开发的难度降低到最低,大大简化了小程序开发过程。安宁小程序开发制作平台的原理是基于模板和组件的方式来制作小程序。它提供了丰富的模板和组件,用户只
2023-08-09
web小程序开发定制
Web小程序开发定制,是指开发者利用Web技术,结合某些开发框架或平台,为企业或个人提供小程序开发服务,旨在解决企业或个人在小程序开发过程中所遇到的问题,并为其提供更加优质的小程序开发服务。一、Web小程序开发的基本原理1、概述:Web小程序开发的基本原理
2023-08-09
qt开发windows小程序
QT(全称为Qt Creator)是一个跨平台的C++应用程序开发框架。使用Qt开发Windows小程序可以方便开发者在Windows环境下编写界面丰富、交互性好的应用程序。一、QT开发环境安装为了编写Qt程序,您需要下载Qt Creator开发工具和相关
2023-08-09
idea微信小程序开发教程
idea微信小程序开发教程微信小程序作为一种新型的移动应用程序,近年来在移动应用开发市场逐渐受到人们的关注。微信小程序的开发方式简单高效,同时具有非常高的实时性和计算能力,因而备受开发者的青睐。而开发微信小程序最主要的编程工具之一就是idea,接下来我将为
2023-08-09
西安微信上的小程序开发工具
小程序是一种轻量级的应用,它可以在微信中快速部署和使用,而不需要像iOS和Android应用那样从应用商店下载。西安微信小程序开发工具是一款帮助开发者快速构建小程序的工具,它提供了一个可视化的开发环境和强大的开发工具,以便于小程序的开发过程。小程序的开发过
2023-05-26
四川餐饮外卖类小程序开发工具
四川餐饮外卖类小程序开发工具,其实是指微信小程序开发工具,因为微信小程序广泛应用于餐饮外卖领域,所以也被称为四川餐饮外卖类小程序开发工具。微信小程序是一种轻量级的应用程序,不需要下载安装可以直接在微信中使用,具有快速入口、用户易获取、易分享等优势,非常适合
2023-05-26
河北区微信小程序开发工具
微信小程序是一种轻量级的应用程序,可以快速开发并在微信平台上发布。它结合了Web应用程序的优点和原生应用程序的高性能和功能。微信小程序提供了一个完整的开发和发布过程,包括开发工具、API和SDK库、支付和授权、运行环境和服务端。河北区微信小程序开发工具是微
2023-05-22
福建微信小程序开发工具
福建微信小程序开发工具,是一款由腾讯公司提供的小程序开发工具,主要用于开发微信小程序。该工具可以帮助开发者快速地开发和构建微信小程序,包括前端页面、后端服务以及小程序管理等功能。下面是该工具的详细介绍和原理说明。一、福建微信小程序开发工具的特点1. 具备高
2023-05-22
小程序制作,
小程序是一种轻量级的应用程序,它可以在微信、支付宝等社交平台中运行,无需下载和安装,即可使用。小程序具有开发成本低、开发周期短、用户获取成本低、用户留存率高等特点,因此已经成为了移动互联网应用开发的热门方向之一。小程序的原理是基于微信公众号开发的,通过微信
2023-04-06