Web Components 系列(十)—— 实现 MyCard 的基本布局


mycard.001

前言

前面针对 Web Components 学习了一些基本的理论知识,我们了解到的概念有:

  • Custom Elements
  • Shadow DOM
  • Templates
  • Slots

以及和这些概念相关的子知识点。

理论知识基本上够用了,从现在开始我们需要将理论运用到实践中,让理论为实践服务。今天,我们就使用 Web Components 的相关知识来实现 MyCard 的制作,原型呢就以我们人人都有的身份证做参照吧。

最终实现的基本布局效果如下:

image-20220217225317835

使用 Templates 布局

这里我们使用 HTML 模板将布局先构建出来,代码如下:


创建自定义元素

使用我们前面学习过的方法,创建一个基本的自定义元素 my-card,在自定义组件中引入 Templates 布局,代码如下:

class MyCard extends HTMLElement {
    constructor () {
        super();
        this.shadow = this.attachShadow({mode: "open"});
        let tempEle = document.getElementById("card_layout");
        this.shadow.appendChild(tempEle.content);
    }
}
customElements.define("my-card", MyCard);

使用自定义元素

在 HTML 的 body 中引入 my-card 标签:


总结

最终实现的效果如文章开头所示。

在这篇文章中,我们只使用 Custom Elements 和 Templates 实现了基本布局和样式,实用价值基本为零。

在后续中,会加入 Slots 让自定义元素实现可复用的效果。

~
本文完,感谢阅读!

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!