听了稀土开发者大会,Get到了新知识点:web components

一、前言

在6.30日的稀土开发者大会中,有位讲师分享内容是Quark c工具,它是由哈啰平台前端团队开发的一套面向未来的无框架组件构建工具!它可以让你实现低成本 / 高效开发标准的 跨框架组件 或者 构建整个应用,底层基于浏览器原生 API: Web components。之前我没有听过这个概念,第一次听到瞬间眼前一亮。所以会后研究了一下关于web components的知识,并写成文章分享给大家。

一般来说各大前端框架都有各自的组件库生态,那么有没有可以跨端跨框架的组件库呢?当然有,比如之前我听说过OpenTiny,它是华为云技术团队开源不久的一个组件库,但是当时我并没有去思考探究它是如何实现跨端跨框架的。

前端技术迭代非常快,而且不可能被某一种框架统一市场。考虑到开发成本和维护成本,前端通用型组件势必是前端未来发展的主流趋势之一。

二、什么是 Web Components?

Web Component 是个概念词。它不是一个浏览器原生API,而是一组技术套件的总称,通过这套技术方案,可以创建封装功能的定制元素,即创建浏览器原生层面的自定义组件,它是可以跨端跨框架的,并且不必担心代码冲突。

浏览器兼容性可参考:Web Components 的浏览器兼容性

实现Web Component主要依赖以下三个技术:

  • Custom element(自定义标签元素) :一组 JavaScript API,允许您定义 custom elements 及其行为,然后可以在您的用户界面中按照需要使用它们。
  • Shadow DOM(影子 DOM) :一组 JavaScript API,用于将封装的“影子”DOM 树附加到元素(与主文档 DOM 分开呈现)并控制其关联的功能。通过这种方式,您可以保持元素的功能私有,这样它们就可以被脚本化和样式化,而不用担心与文档的其他部分发生冲突。
  • HTML template(HTML 模板):