Web Components 系列(十)—— 实现 MyCard 的基本布局
前言
前面针对 Web Components 学习了一些基本的理论知识,我们了解到的概念有:
- Custom Elements
- Shadow DOM
- Templates
- Slots
以及和这些概念相关的子知识点。
理论知识基本上够用了,从现在开始我们需要将理论运用到实践中,让理论为实践服务。今天,我们就使用 Web Components 的相关知识来实现 MyCard 的制作,原型呢就以我们人人都有的身份证做参照吧。
最终实现的基本布局效果如下:
使用 Templates 布局
这里我们使用 HTML 模板将布局先构建出来,代码如下:
姓名
编程三昧
性别
男
民族
汉
出生
2022
年
12
月
12
日
住址
xx省xx市xx区xx街道xx小区xx楼xx单元xx楼xx室
创建自定义元素
使用我们前面学习过的方法,创建一个基本的自定义元素 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 让自定义元素实现可复用的效果。
- ~
- 本文完,感谢阅读!
学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!
大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!