web components

web components:一种原生的写组件的方式。下面将主要介绍四个概念:custom elementshadow DOMtemplate 和 slot

示例 demo

一、custom element

创建 custom 元素:customElements.define(name,constructor,options)

name:元素名称、constructor:定义元素主体。具体定义与使用见文档。

其中主要涉及到下面几个概念:

autonomous custom elements:使用时跟使用 html 元素一样。

customized built-in elements: inherit from basic HTML elements。从 html 元素继承而来,使用时会定义 is 属性。demo

lifecycle callbacks:当元素被添加到 DOM、从 DOM 中移除、被移动、属性更改时会触发的回调函数。connectedCallback \disconnectedCallback \adoptedCallback \attributeChangedCallback

二、shadow DOM

原文较准确:The Shadow DOM API is a key part of this, providing a way to attach a hidden separated DOM to an element. 创建一个与外界隔离的 DOM 结构。

先介绍几个概念:

shadow host:shadow 载体节点,添加 shadow root 的 DOM 节点。

shadow tree:类似与 dom tree 的概念。

shadow root:shadow 根节点。

基本使用:

创建 shadow:Element.attachShadow({ mode: 'open' })

可通过设置参数 mode 为 ‘open’/‘closed’,来确定是否允许外部 js 调用该 shadow。

三、template 和 slot

template 主要解决写重复模块的问题。template 可单独使用,需要通过 js 调用才能添加到 DOM 中。与 custom element 结合使用更方便。

添加 slot 后,可以动态地往 template 中添加自定义片段。

注意:样式需添加 style 元素才生效。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 多重方式 可以 联系你 多网时代里 展现 哪一面的你 都不及 一句 当面 我爱你 我爱你 可惜 没有爱 只有 我 ...
    柚子专篮阅读 236评论 0 0
  • 从脚下开始,以一个旁观者的角度向外冥想,感知周围的花草树木,意识视野逐渐上升,从所站立的地方,到整个花圃,到包含花...
    LN龙凝阅读 193评论 0 0
  • 我们可能都在凭自己的努力真诚的活着。 也许结果并不理想。 但是,没关系亲爱的、一笑而过。 因为慢慢的、… 我们都在...
    小薇_abe3阅读 254评论 0 0
  • 读万卷书 行万里路,人生走的每一步,都算数!大家好,我是船长罗丹。在未来的一年里,欢迎你透过文字图片和直播,跟我一...
    Jack不是船长阅读 546评论 5 9

友情链接更多精彩内容