Web Components,启动!
Web Components是W3C制定的一套规范,它允许开发者创建可复用的自定义元素,这些元素可以像普通的HTML元素一样在DOM中使用。这些自定义元素封装了结构、样式和脚本,并且具有明确的接口,以便在其他Web应用中使用。
Web Components 主要包括以下部分:
Custom Elements:允许开发者定义自己的HTML元素,这些元素具有封装好的结构、样式和脚本。Custom Elements的接口可以让开发者在自定义元素上添加属性和方法,以扩展HTML的功能。
Shadow DOM:为自定义元素提供了一个隔离的DOM环境,使得自定义元素的样式和脚本不会影响到其他元素。Shadow DOM使得开发者可以在自定义元素内部使用CSS和JavaScript,而不用担心样式冲突或脚本相互干扰的问题。
HTML Templates:提供了一种定义自定义元素结构模板的方式。通过HTML Templates,开发者可以创建包含插槽(slot)的模板,然后在实例化自定义元素时,将内容填充到相应的插槽中。
本文就来分享九个值得使用和学习的 Web Components 开源项目,带你走进 Web Components 的世界!
Lit
Lit 是一个基于 Web Components 标准的 JavaScript 库,它提供了一系列的工具和 API ,使得创建高性能、动态、可重用的 Web 组件变得更加容易。Lit 的特点包括:
轻量级:Lit 的代码库非常小巧,压缩后只有不到 10KB,这使得它使用起来非常方便,加载速度也很快。
编程简洁:Lit 提供了一组简单的 API,并且支持使用 JavaScript 模板字符串进行 HTML 的快速构建,降低组件编写的难度。
可扩展性强:Lit 不仅支持原生的 Web Components 标准 API,还提供了一些自定义的组件 API,可以更加方便地实现高级功能。
生态丰富:Lit 社区活跃,提供了许多常用的外部库和组件,可以帮助开发者快速搭建复杂的应用程序。
Fast Element
Fast Element 是一个基于 Web Components 标准的开源 UI 库,由 Microsoft 出品。Fast Element 旨在提供高性能、可维护和易扩展的 Web Components,以便构建现代化 Web 应用程序。Fast Element 的特点包括:
简单易用:提供了一组简单的 API,可以使用 TypeScript 进行开发,并且支持使用 CSS 样式进行个性化定制,使得组件开发更加容易。
可复用性强:提供了一些通用的组件,如按钮、文本框等,这些组件可以直接调用或集成到其他组件中,降低了开发和维护成本。
样式定制灵活:支持使用 CSS 变量进行主题定制,也支持使用 LESS 或者 Sass 进行样式的编写和管理,开发者可以根据自身需求自由定制样式。
支持无障碍访问:提供了高度可访问的 UI 组件,符合 W3C 的 Web Content Accessibility Guidelines (WCAG) 标准,在无障碍环境下使用也非常友好。
Stencil
Stencil是一个开源的使用TypeScript、JSX和CSS来创建符合标准的Web Components的编译器。它结合了最流行框架的最佳概念,提供便捷的API和关键功能,如预渲染和对象作为属性,使编写快速、强大的组件变得更加简单。Stencil还可以生成特定于框架的包装器,以便与流行的框架直接集成使用,并提供优化的开发体验,包括实时重载和一个小型开发服务器。
Github:https://github.com/ionic-team/stencilomi
omi 是腾讯出品的 Web Components 框架,内置 JSX 和信号 signal/Signal。其具有以下特点:
信号驱动的响应式编程:OMI框架采用信号驱动的响应式编程方式,确保用户界面能够准确地根据需要进行更新。这种编程方式有助于减少不必要的渲染和计算,提高应用的性能和用户体验。
完备的模板和组件:OMI框架提供了丰富的模板和组件,包括OMIU、JSX、Router、Suspense、VChart和VTable(Visactor)等。这些组件和模板都是开箱即用的,无需进行任何配置,可以大大简化开发过程,提高开发效率。
面向对象编程(OOP)和数据驱动编程(DOP):OMI框架同时支持面向对象编程(OOP)和数据驱动编程(DOP)两种编程方式。这意味着开发者可以根据项目需求选择最适合的编程方式,灵活应对不同的开发场景。
可构建样式表(Constructable Stylesheets):OMI框架支持可构建样式表(Constructable Stylesheets),这使得样式的管理和共享变得更加轻松。通过可构建样式表,开发者可以更加高效地管理和维护应用的样式。
Web Components支持:OMI框架支持Web Components,这意味着开发者可以轻松地创建符合标准的跨框架组件。这有助于提高组件的复用性和可维护性,降低开发成本。
微小尺寸和极速性能:OMI框架具有微小的尺寸和极速的性能,支持所有现代浏览器。这得益于框架采用了先进的技术和优化手段,使得应用能够在保持高性能的同时保持较小的体积。
Quark Design
Quark Design 是哈啰出品的面向 C 端的下一代前端组件库,它可以在任意框架或无框架中使用,支撑哈啰几乎所有 C 端 H5 项目,包括交易,支付,两轮,商城等。这是一个设计轻盈优雅的企业级 UI 组件库,可以满足所有日常使用的基础组件需求。
Quark design 是一种全新的组件库,底层基于Web Components,不同于传统组件框架(如Antd, Vant),需要浏览器中需要做大量前置工作。Quarkd则将这些工作放到构建应用程序的编译时来处理。组件的数据更新响应由浏览器自身API处理,更简单,更高效!Github:https://github.com/hellof2e/quark-designLion
Lion 是一套基于 Web Components 的组件库,具备高性能、高可访问性和灵活性。作为一个无偏见、可定制的白标层,Lion 提供了丰富的组件基础,允许开发者轻松扩展和构建自己的组件层。
在性能方面,Lion 专注于在所有主流浏览器中实现卓越的性能,同时保持极低的依赖项数量,确保高效的运行和加载速度。
在可访问性方面,Lion 致力于符合 WCAG 2.2 AA 标准,通过创建无障碍的组件,确保所有人都能够轻松使用和访问。
在灵活性方面,Lion 提供了基于 Web 组件和 JavaScript 类的解决方案,这些方案可以根据具体需求进行使用、采纳和扩展,满足各种场景下的需求。
Lion 还采用了现代代码的分发方式,以纯 es 模块的形式提供,便于集成和使用。同时,它还以最合适的形式公开函数、类和 Web 组件,方便开发者根据需求选择和使用。
Shoelace
Shoelace 是一个具有前瞻性的基于 Web Components 的 UI 组件库。它具有以下特点:
兼容所有框架
兼容CDN
可通过CSS完全自定义
包含深色主题
以无障碍性为设计核心
提供一流的React支持
内置本地化功能
UI5 Web Components
UI5 Web Components 是 SAP UI5 框架的一部分,它是一个开源的 Web 组件库,用于构建现代的 Web 应用。UI5 Web Components 提供了一系列的可复用的 UI 组件,如按钮、输入框、表格等,这些组件都是基于 Web 标准的自定义元素和 Shadow DOM 技术实现的。这意味着可以在任何支持这些 Web 标准的环境中使用这些组件,如 Angular、React、Vue 等。
Github:https://github.com/SAP/ui5-webcomponentsAwesome Web Components
一系列 Web Components 学习资源,包含文章、案例、框架、库、生态系统、图书等。
Github:https://github.com/web-padawan/awesome-web-components往期推荐
Electron 29.0.0 正式发布,跨平台桌面应用开发工具!