ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【小程序】图解小程序平台架构及其特征与应用机制 [打印本页]

作者: 王柳    时间: 2022-6-25 22:58
标题: 【小程序】图解小程序平台架构及其特征与应用机制
⭐️ 本文首发自 [前端修罗场],一个专注 Web 技术、答疑解惑、面试辅导、职业发展的社区。
  本文是系列文章,将会解读 W3C 小程序白皮书第 2 版(最新版),这份白皮书现在也成为了各厂研发自己小程序平台的标准。本文将解读小程序研发平台的架构。

文章目录



核心特征

视图层与逻辑层分离

在小程序中,视图层通常与逻辑层分离。视图层负责渲染小程序页面,包括Web组件和原生组件的展示,可以认为是混合渲染。 例如,某些 Web 组件可能不被 WebView 支持或存在性能限制,因此 小程序 也需要依赖原生组件,例如地图、视频等组件。

逻辑层是用 JavaScript Workers 实现的。 Worker 负责 小程序 的事件处理、API 调用和生命周期管理。
小程序在原生能力的扩展,通常来自托管的原生应用程序或操作系统,包括支付、文件处理、图像扫描、电话呼叫等。这些功能通过特定的 API 调用。 当 小程序 调用原生 API 时,它会将 API 调用转移到扩展的原生功能,以便通过 JavaScriptBridge 进行进一步处理。 它通过 JavaScript Bridge 从扩展的本机功能中获取结果。如下图所示,演示了当 API 被调用时,数据在小程序中的流转。

如上图所示,Worker 为每个 Render 建立连接,将需要渲染的数据传输到 Render 进行进一步处理。
如果小程序页面中的某个组件触发了事件,该页面的 Render 会将事件发送给 Worker 进行进一步处理。 同时,Render 会等待 Worker 发送的数据重新渲染小程序页面。
这里的渲染可以认为是无状态的,所有的状态都会存储在worker中。
那么这么做有什么好处呢?其实,分离视图层和逻辑层的好处有如下几点:

丰富的 APIs 和组件

小程序平台提供了许多组件来帮助开发人员构建精美的 UI,包括视图、表单、图像等基本组件和地图等高级组件。
小程序平台还为开发人员提供了许多 API 来访问 Web 和原生功能,包括 UI 显示 API、图像处理 API 等基本接口,以及用户帐户 API、地图 API 和支付 API 等高级接口。
API 通常与组件一起工作。 当用户在小程序页面点击某个组件时,会调用相关API完成用户交互,并在需要时刷新当前小程序页面。
小程序构造器

为了获得与原生应用类似的用户体验,小程序资源通常被打包在一起。 下载安装小程序包后,小程序所需的所有静态资源(即页面模板、CSS、JavaScript文件等文档)都会持久存在于用户的设备上在下次更新之前,这些资源始终可用,无需任何冗余下载。
小程序包是一个压缩的 ZIP 存档,这个文档中包括如下文件:

为了在搜索和执行时定位特定的小程序,小程序必须在平台上具有包名或标识符。
小程序小部件

除了小程序页面,小程序还可以显示为信息片段或小程序小部件在这种形式中,开发人员可以将他们的服务和/或内容放到各种主机场景中,称为主机环境。 该功能将小程序的服务和内容与具体场景联系起来,为用户提供更多便利。
例如,当用户购买旅行的火车票时,智能助手上的小程序小部件会立即显示火车的最新状态。 用户可以点击这个小部件并跳转到小程序的全屏页面以获取更多详细信息。
就像在小程序页面中一样,小部件也由 URI 方案来描述宿主环境通过其 URI路径指定要加载的小程序包和对应的 widget,并通过 URI 查询参数将数据传递给widget。 加载小部件后,它会在宿主环境中显示和渲染。 来自主机和小部件的数据以及来自不同小部件的数据被隔离以确保安全性和独立性。
在很多场景下,一个小部件可以打开一个小程序页面进行更复杂的操作。 在这种情况下,小部件通常需要与其对应的小程序共享数据(例如,保持一致的登录状态)。 因此,小程序和页面拥有相同的数据访问权限。

小部件的目标之一就是让用户忘记传统的 app 概念,以服务的形式真正满足用户的需求。 所以,除了所有的 app 调用路径外,小部件 还可以在不同的场景下通过不同的方法触发,比如文本关键词、语音分析、图片识别、扫码等。
一个实例,多个入口:全局性

有多个入口可以发现、打开和访问小程序。 与多个 WebView 中的 Web 内容不同,同一个 小程序 只会创建一个实例,因此 小程序 以全局一致的方式保持其状态和数据。 例如,用户第一次通过二维码入口打开并登录小程序后,下次从小程序商店等其他入口返回时,该用户将会保持登录状态。
小程序的入口包括但不限于如下几种:

性能和用户体验

小程序试图通过一些实践来证明是存在有效的机制来提高它们的性能和用户体验的。

登录便捷

小程序平台为用户提供了多种登录小程序的方式如果用户已经通过身份认证登录平台,可以将平台的登录信息分享给小程序,快速实现小程序自身账号体系与平台账号体系的互通,让小程序的访问过程更加流畅。 光滑的。
例如,传统的带有短信验证的登录过程比较耗时: 用户需要先手动输入手机号,收到短信后输入验证码才能登录。小程序的优点是开发者可以使用平台提供的组件/API安全获取用户手机号, 方便地提示用户使用手机号授权一键登录流程,使用户整个流程变得简单,降低了开发者获取用户信息的成本。
分包

小程序分包是一种改进小程序包开发过程的构建机制。 它帮助开发者**将不同的业务模块划分为不同的子包。**这个特点,对于开发者和用户都是有利的。

通过这样的分包构建机制,在多个团队一起开发的时候更好的解耦和协作。 当用户使用小程序时,分包机制可以提高小程序首页的加载速度,按需加载分包,优化用户体验。
插件

在小程序中,插件/扩展是一个封装的模块,它为**现有的小程序添加特定功能,**它可以是组件、JavaScript 模块或页面。 插件/扩展只能在小程序中执行,不能单独运行。 开发者可以像小程序一样开发插件/扩展,上传到小程序平台供其他小程序复用。
这中插件机制有助于:

因此,插件机制降低了小程序开发的门槛,为小程序生态带来了更多的开发者。
最后,给大家介绍一下现有的一些小程序应用商店。
小程序应用商店



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4