如何看待Web Components与前端框架之争?

家好,很高兴又见面了,我是"前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

前端‬进阶

1.Web Components的出现?

当开发人员第一次查看网站时,他们通常会看到一个 HTML 模板,就像下面这样(当然还包括JavaScript 和CSS:


  
 

但是结合 HTML 和 JS 会使得开发变的困难,因为它需要大量的时间、精力和难以维护的代码。尤其是当您想做复杂的事情时,例如构建 Web 网格组件、Web 组件图表和图形等等。

这就是出现 TypeScript(或 JavaScript)和各种 Web 应用程序框架的原因。他们有许多预定义的功能,可以在处理新项目时使用。但随之而来的是下一个挑战,即学习曲线。您必须掌握特定的编程技能,才能使用 Angular、React、jQuery、Blazor 等框架并开发您需要的组件。

图片来自“Shanika Wickramasinghe”的《Web Components as Technology》

现在这些事情可以在没有框架的情况下完成,也不必了解所有模块、编码语言和集成背后的复杂性,这要归功于 Web Components。

以下是您将在本文中学到的内容。

2.什么是 Web Components?

Web Components是一种浏览器原生 HTML 和 JavaScript 技术,用于创建自定义 UI 元素,例如按钮、小部件widget等,或用于构建整个屏幕、页面和应用程序。它的伟大之处在于封装的功能不同于其余代码以及 的可重用性。模块化的能力允许您在项目的任何地方使用单个元素,不仅可以快速轻松地构建 ,还可以缩短开发时间。

但是不要将 Web Components 与框架或渲染库混淆,因为 Web Components 不属于这些技术类别。把它看作如下几种技术可能更加合理:

标准 Web Components的概念相对较新,由Alex Russell 在 2011 年的 Fronteers 会议上首次提出,在过去十年中发生了重大变化,为开发人员(尤其是新手)提供了一种简化现代 Web 应用程序创建方式的方法。在谈论 Web Components时,我们实际上是在谈论它基于的三种不同规范:

自定义元素:一组 JavaScript API,允许创建新的 HTML 标记、改进现有标记、定义自定义元素行为以及扩展由其他程序员构建的组件,以便达成UI 最佳匹配。自定义元素有自己的语义和标记,并且没有第三方框架存在。

Shadow DOM : 分离 CSS 和 JavaScript 并提供封装能力。通过这种方式,您可以将自定义的元素标记结构、样式和行为与页面上的其他代码隔离开来,确保不同部分不会发生冲突,同时保持代码整洁。使用 Shadow DOM API,您还可以将隐藏的 DOM 附加到给定元素。

HTML 模板:在自定义元素中使用