哪些在迷你应用上表现良好
在本章中,我想回顾一下从 Web 开发者的角度研究迷你应用的经验,或者回答以下问题:以迷你应用开发方式意味着什么。
组件
您无需进行重复性操作,让开发者为标签页、手风琴式折叠、轮播界面等常见界面范例再构建一种新的实现方式,迷你应用只提供一系列默认组件,您可以在需要更多组件时进行扩展。在 Web 上,同样有很多选项,其中一些选项已在迷你应用组件章节中列出。 在理想情况下,Web 组件库的构建方式可让您自由混合这些组件库。在实践中,使用组件时,会有一些设计系统受制于特定供应商;或者,组件库以全部或零的形式分发,但没有任何一个组件能轻松添加到项目中。不过,您可以单独使用原子组件,或者故意设置未设置样式的通用组件等库。我觉得要去使用这些模型是个好主意。
模型-视图-视图模型
模型-视图-视图模型 (MVVM) 架构模式有助于将通过标记语言开发图形界面(视图)与后端逻辑(模型)开发相分离,这意味着视图不依赖于任何特定的模型平台。虽然此模式有一些记录在案的缺点,但一般来说,它非常适用于迷你应用复杂性的应用。 它在与丰富的模板库配合使用时尤为突出(请参阅下一章)。
页面式思考
调试迷你应用显示它们本质上是多页应用 (MPA)。这样做有很多优点,例如,它支持简单的路由,可以实现无冲突的每页样式。人们已在渐进式 Web 应用中成功应用 MPA 架构。采用网页思维模式还有助于管理资源(例如每个网页的 CSS 和 JavaScript 文件)以及其他资源(例如图片和视频)。 最重要的是,以这种方式构建意味着,如果您不加载任何其他内容,可以免费获得基于路由的代码拆分。在这种情况下,根据定义,每个网页只会加载正常运行所需的内容。
构建流程
迷你应用没有可见的构建流程。在 Web 上,Snowpack 等现代构建工具利用 JavaScript 的内置模块系统(称为 ESM)避免不必要的工作,无论项目规模如何,都能保持快速运行。虽然 Web Bundle 等技术尚处于早期阶段,但可以轻松添加到构建流程中。
强大的功能
Web 平台最近获得了许多新功能。现在,可以通过蓝牙、USB、HID、serial和 NFC 访问设备。如果迷你应用在 WebView 中运行且依赖于 JavaScript 桥,那么在 Web 上,这些强大的功能可以直接使用,因此您不需要针对 JavaScript 桥接提供的 API 进行编程,而是针对没有中间操作者的浏览器 API 进行编程。
致谢
本文由 Joe Medley、Kayce Basques、Milica Mihajlija、Alan Kent 和 Keith Gu 审阅。