哪些做法对迷你应用效果较好
在本章中,我想从 Web 开发者的角度探讨在研究迷你应用时学到的教训,或者回答“以迷你应用方式开发应用”意味着什么这个问题。
组件
迷你应用只提供一组默认组件,这些组件可扩展,以便您根据需要添加更多组件,而不是让开发者重新发明轮子,再实现标签页、折叠式动作条、轮播界面等常见界面范式的另一种实现。在 Web 上,同样有许多选项,其中一些选项已在“迷你应用组件”章节中列出。 理想情况下,Web 上的组件库的构建方式应能让您自由组合使用这些库。在实践中,很多时候,在使用组件时,您需要接受某个设计系统的某些限制,或者组件库的发布方式是“全部或全无”,而无法轻松地将单个组件添加到项目中。不过,有些原子组件可以单独使用,有些库(例如 generic-components)则是故意不设置样式的。找到并使用这些方法似乎是个不错的主意。
模型-视图-ViewModel
Model-View-ViewModel (MVVM) 架构模式有助于将通过标记语言开发图形界面 (View) 与开发后端逻辑 (Model) 分离开来,这意味着 View 不依赖于任何特定的 Model 平台。虽然该模式有一些已记录的缺点,但总的来说,对于复杂程度与迷你应用相当的应用,该模式非常适用。它在搭配丰富的模板库时效果尤为出色(请参阅下一章)。
页面级思考
调试迷你应用会发现,它们本质上是多页面应用 (MPA)。 这有很多优点,例如,它允许进行简单的路由,并实现无冲突的每页样式。用户已成功将 MPA 架构应用到渐进式 Web 应用。以网页为中心思考还有助于管理各个网页的 CSS 和 JavaScript 文件等资源,以及图片和视频等其他资源。 最重要的是,如果您不加载任何其他内容,则通过这种方式构建意味着您可以免费获得基于路由的代码分块。在这种情况下,每个页面都只会严格加载其正常运行所需的内容。
构建流程
迷你应用没有明显的构建流程。 在 Web 上,Snowpack 等现代构建工具会利用 JavaScript 的内置模块系统(称为 ESM),以避免不必要的工作,并确保无论项目规模如何,速度始终保持快速。虽然网站软件包等技术还处于起步阶段,但可以轻松添加到构建流程中。
强大的功能
Web 平台最近新增了许多功能。现在,您可以通过蓝牙、USB、HID、串行和 NFC 访问设备。在 Web 上,这些强大的功能可直接使用,而无需通过 JavaScript 桥接提供的 API 进行编程,而是通过浏览器 API 进行编程,而无需中间执行器。如果迷你应用在 WebView 中运行并依赖于 JavaScript 桥接,
致谢
本文由 Joe Medley、Kayce Basques、Milica Mihajlija、Alan Kent 和 Keith Gu 审核。