您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

WebComponents

Web Components 是一套不同的技术,允许您创建可重用的定制元素(它们的封装在您的之外)并且在您的 web 应用中使用它们。

Web Components 可以理解成组件。

使用 Web Components 可以达到如原生的 video 的,video 在被浏览器解析后有许多子节点,如播放控制器部分的控制按钮,这些在使用 video 的时候是不需要关心的,也不用手动书写这些子节点,同时又能被多处复用。

这些子节点通常是看不见的,藏起来的,但是通过 Chrome 的设置可以出来。

这种看不见的子节点被称为 Shadow DOM,许多文献称为 影子节点 或者 影子 DOM

Web Components 具有非常好的隔离性,特别在样式表现上,可以做到完全隔离。

Web Components 继承自 HTMLElement,然后通过 customElements.define() 来这个 Component

以下例子?会创建名为 to-imooc 的组件。

class ToImooc extends HTMLElement { // Web Components 继承自 HTMLElement
  constructor() {
    super(); // 构造

    const link = document.createElement('a'); // 创建 a 元素

    link.href = 'javascript:;'; // 认什么都不做
    link.innerText = 'GOGOGO! Imooc 出发!'; // 的文案

    link.addEventListener('click', () => { // 事件
      alert('坐稳啦!要发车啦!!!');

      window.location.href = '//imooc.com';
    });

    this.append( // this 就是的节点
      link,
      document.createElement('br'),
    );
  }
}

window.customElements.define('to-imooc', ToImooc);

这样就创建好了的组件。

然后在 HTML 中使用就好了。

<to-imooc></to-imooc>
<to-imooc></to-imooc>
<to-imooc></to-imooc>
<to-imooc></to-imooc>

这样就完成了简单的组件,可以重复使用。

根据 Can I Use 可以看出,该特性现在浏览器并不广泛,不太适合在生产环境使用,但基于该特性,还是衍射除了许多 “未来”。

微前端 尚处在发展时期,其核心概念和 微服务 相似。

现阶段较为常用的微前端框架为 single-spa 和 ,后者是基于前者实现的。

该技术能做到 技术栈无关,即应用,能由多个不同技术的子应用构成,同时做到子应用的相互隔离,这里的隔离就可以选择采用 Web Components 实现。

是由腾讯开源的跨端框架,其就是基于 Web Components 来设计的。

虽然 Web Components 还存在兼容性问题,但可以作为预备知识进行了解,或者应用于一些内部对兼容性无要求的项目。


联系我
置顶