免费试用

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

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中直接运行,为用户提供各种服务和功能。开发一个客户服务平台的小程序,可以方便地与用户进行沟通和交流,提供各种服务支持和问题解答。以下是开发百度小程序客户服务平台的详细介绍。1. 注册小程序开发者账号
2023-08-23
安徽餐饮外卖类小程序开发报价
餐饮外卖类小程序近年来风靡行业,这种基于微信平台的应用程序不仅能提升商家的销售业绩,也可以为用户提供更加方便、高效的点餐方式。那么,对于餐饮店主来说,如何开发一款高效且易操作的外卖小程序呢?一、小程序的原理小程序作为一种新兴的应用形式,其核心原理其实与普通
2023-08-09
安徽体育馆小程序开发平台入口
安徽体育馆小程序开发平台是一款专门为安徽省内体育场馆提供的开发工具,通过该平台,体育场馆可以快速地开发出自己的小程序,方便用户获取体育场馆的相关信息和进行预订等操作。下面将对该平台的原理和详细介绍进行说明。一、安徽体育馆小程序开发平台原理安徽体育馆小程序开
2023-08-09
安庆家纺小程序开发公司
随着互联网的发展和智能手机的普及,小程序已经成为了人们日常生活中必不可少的组成部分。小程序具有轻量级、易用性强、开发成本低廉等优点,能够为企业、商家带来极大的商机。本文将介绍安庆家纺小程序开发公司的原理和详细介绍。一、安庆家纺小程序开发公司的原理安庆家纺小
2023-08-09
uni小程序开发
uni小程序是一款基于Vue.js框架的开发工具,可以快速开发出各种小程序应用,支持各种平台的小程序开发,包括微信小程序、支付宝小程序、百度小程序等。本文将为大家介绍uni小程序的开发原理和详细介绍。一、uni小程序的开发原理uni小程序的开发原理和其他小
2023-08-09
app和小程序开发费用哪个低
移动应用程序(APP)和小程序是当前智能手机和平板电脑上的两种主要应用形式。随着移动互联网的普及,手机APP和小程序的使用越来越广泛,不仅在消费者市场中占据一席之地,也在企业和政府中发挥了重要的作用。近年来,随着行业的发展和技术的成熟,APP和小程序开发的
2023-08-09
珠海微信小程序开发工具哪家好
随着智能手机的广泛普及和移动互联网的快速发展,新兴的微信小程序应用已成为互联网行业中备受关注的热门话题。微信小程序是指在微信生态系统内部运行的小型应用程序。它不需要安装即可使用,通过微信账号登录后,用户即可在线使用各类小程序。微信小程序已经成为互联网生态系
2023-05-26
微信小程序开发工具设置合法域名
微信小程序是一种基于微信平台的应用程序,可以在微信内部使用,提供给用户更轻便、更高效的体验。在开发微信小程序过程中,合法域名的设置是非常重要的一部分。在这篇文章中,我们将详细介绍微信小程序开发工具设置合法域名的原理和步骤。首先,了解什么是合法域名。合法域名
2023-05-26
微信小程序开发工具源代码
微信小程序开发工具是一款用于开发、编辑和调试微信小程序的集成开发环境(IDE)。它是一个基于Electron平台开发的桌面应用,通过调用微信开发者工具的API实现了微信小程序的开发和调试,让开发者可以在一处完成小程序的开发、调试和发布。微信小程序开发工具的
2023-05-26
微信小程序官方开发工具demo
微信小程序是一种基于微信开发者工具的应用程序,它具有安装便捷、使用方便、生态完备等优点,在各种场合广泛应用。本文将详细介绍微信小程序官方开发工具Demo的原理和开发过程。微信小程序官方开发工具Demo实现了一个简单的聊天室,用户可以通过微信小程序登录、实时
2023-05-26
北京小程序开发工具下载官网
随着移动互联网的飞速发展,小程序逐渐成为移动应用领域的新宠。小程序具有占用空间小、安全稳定、使用方便等优点,已被广泛应用于各类电商平台、在线教育、医疗健康等领域。本文将介绍北京小程序开发工具的下载官网及其原理。一、北京小程序开发工具简介北京小程序开发工具是
2023-05-22
小程序生成步骤详解
小程序生成是一种利用现有的网页或应用程序,快速创建一个可以在微信平台上运行的轻量级应用程序的技术。小程序生成的优点是可以节省开发时间和成本,提高用户体验和转化率,以及利用微信的社交网络和支付功能。小程序生成的步骤如下:1. 在微信开放平台注册一个小程序账号,并填写相关信息。
2023-04-06