利斯科夫的枪:React 和 Web Components 的并行演化

主要观点:Web 组件在网页开发中引发了诸多争议和争论,其发展历程充满波折,从早期 Google 的专有项目到与其他浏览器的分歧及标准的演变。React 凭借其单向数据流等理念在现代网页开发中占据主导地位,但也存在诸多问题,如难以进行单元测试、性能问题等。Web 组件虽有优势,但在与 DOM 的交互、继承等方面存在困难,对于实现某些功能框架也并非最佳选择。然而,Web 组件仍有其价值,新的 web 标准正在改善平台,我们应正确看待和利用它们。

关键信息

  • Web 组件包括 Custom Elements、Shadow DOM、Template element 等,可用于构建可复用的自定义小部件,但在不同浏览器中的支持和发展历程不同。
  • 早期 Web 组件是 Google 的专有项目,存在兼容性问题和推广者的不良行为,导致其声誉受损。
  • React 以单向数据流等理念赢得 popularity,但其存在诸多问题,如难以进行单元测试、性能问题等。
  • Web 组件与 DOM 的交互存在问题,如影响 DOM 层次结构、难以实现某些功能等。
  • 不同的网页开发框架对 Web 组件的态度不同,存在分歧和争论。
  • 新的 web 标准正在改善平台,Web 组件应被正确看待和利用。

重要细节

  • 2011 年 Alex Russell 在 Fronteers 会议上提出 Web 组件概念,同年 React 仍为 Facebook 内部项目。2013 年 Google 开始标准化 Web 组件,Facebook 发布 React。
  • Web Components v0 到 v1 经历了诸多变化,如 HTML Imports 被删除、Shadow DOM 更改等,迁移过程痛苦。
  • React 的单向数据流理念在实践中存在诸多问题,如难以进行单元测试、性能问题等。
  • Web 组件与 DOM 的交互问题导致其在某些情况下不适合作为某些框架的内部实现。
  • 目前有“使用平台”“Web Component 框架实现者”“其他反应式组件框架”三个阵营,存在分歧但可共同利用 Web 组件。
  • 新的 web 标准如 View Transition API、Import Maps 等正在改善平台,为网页开发带来新的可能。
  • 网页应用对于开发者和用户都很重要,应正确看待 Web 组件等技术,避免因噎废食。
阅读 10
0 条评论