Apple 刚刚将 Web Components 投入生产,你可能错过了
昨天,苹果宣布发布新测试版 Apple Music Web Client,让 Apple Music 用户能够从网络上收听自己喜欢的音乐,而不仅仅通过安装的原生应用程序。
我当时一直在关注Hacker News 上的讨论,很多人都很高兴看到苹果拥抱 Web,并为 Spotify 等其他自早期就拥有丰富 Web 体验的音乐应用带来同等的体验。苹果仍然深切关注 Web,这让很多人感到鼓舞和兴奋。
不出所料,HN 的读者们对这家如此庞大且影响力巨大的公司发布如此重大版本背后的技术栈感到好奇。好奇的读者们很快就发现,这款应用的很大一部分是基于 Ember 构建的,而大部分技术讨论都集中在这一点上:
然而,一些细心的读者注意到了一些有趣的事情:苹果还发布了超过 45 个 Web 组件,用于支持 Apple Music 网页体验的方方面面(他们使用StencilJS构建了该组件,这个细节其他人并没有注意到,但可以通过检查正在加载的组件包来发现)。这些组件主要围绕用于音乐视频的新视频播放器、播客播放控制、通知等等。我对此的理解是,苹果会随着时间的推移使用 Web 组件部署更多功能,而我们今天看到的这些功能正是它们正在测试的新兴功能。
我发现 HN 上几乎每个人都对 Web Component 的使用一无所知,这真是太好笑了。毕竟,HN 上关于 Web Component 的讨论经常演变成激烈的争论,人们抱怨 Web Component 无法解决团队实际遇到的独特问题,而且实际大规模使用的情况也少之又少。现在,几乎每篇 HN 上关于 Web Component 的帖子里,你都能看到这样的评论:Web Component 只是 React 等流行第三方组件模型的拙劣替代品,Web 标准制定者应该放弃它。
鉴于苹果对于自定义元素和 Shadow DOM 等现代 Web 标准是否得到实施(以及是否正确实施)具有巨大的影响力,他们采用这些新 API 并将其主要实现部署到大型消费者应用程序中这一事实应该是当今最大的新闻。
让我们来思考一下:苹果刚刚将近 50 个 Web 组件部署到生产环境中,为一款他们赖以生存的重要应用提供支持,而这款应用对他们来说有着巨大的收入和战略价值。你再也不能一本正经地说“没人用 Web 组件”或者它们“正在解决用户领域不存在或已经得到更好解决的问题”了。
他们将 Web 组件与 Ember 这样的框架融合在一起,这本身就是对 Web 组件的极大认可。它们可以与各种流行框架共存,通常能够解决不同的技术和团队文化问题(例如,不同团队正在使用的前端技术栈的多样性),同时还能带来一些真正独特的优势,尤其是在性能方面。这并非非此即彼,而且可以轻松地逐步采用!
哦,如果你好奇苹果团队是如何构建这些 Web 组件的,原来他们使用了我们的开源项目Stencil JS。Stencil 是为了支持流行的跨平台 UI 框架Ionic Framework而构建的,它提供了类似于 React 和 Angular 的视图层,但专注于生成 Web 组件,其功能包括自动 polyfill 交付、高度优化的延迟加载、为流行框架生成原生绑定,以及基于 TypeScript 构建的工具链。如果你对此感到好奇,我们将在v1 发布博客上详细介绍 Stencil 以及它如何在现代 Web 应用性能方面引领前端视图/框架市场。
我们非常高兴 Apple 即将推出 Web Components 并投入生产,更高兴的是他们正在使用我们的 Stencil 项目来实现这一点。我们迫不及待地想看看他们未来还会推出什么!
文章来源:https://dev.to/ionic/apple-just-shipped-web-components-to-production-and-you-probously-missed-it-57pf