搜索
首页web前端css教程网络组件比您想象的要容易

网络组件比您想象的要容易

Web组件:一旦令人生畏,现在就可以访问了。我过去在会议上的经历描绘了一幅复杂的JavaScript庞然大物的照片,似乎超过了好处。但是,最近的一个项目着重于简化HTML学习(自然而然地使用僵尸和幽默!),迫使人们更深入地深入研究<slot></slot><template></template>。结果?网络组件比我记得的要容易得多。

一系列简单的步骤

本文是探索Web组件的系列中的第一篇:

  • Web组件比您想象的要容易(当前文章)
  • 交互式网络组件比您想象的要容易
  • 在WordPress中使用Web组件比您想象的要容易
  • 带有Web组件的内置元素比您想象的要容易
  • 上下文感知的网络组件比您想象的要容易
  • Web组件伪级和伪元素比您想象的要容易

我最初的忧虑可能掩盖了现代网络组件的现实。让我们消除神话,一起建立一个组件。

基金会:<template></template>

<template></template>元素为我们的组件提供HTML结构。它可能非常简单:

<template>
  <p>僵尸即将到来!</p>
</template>

这构成了我们的基础<apocalyptic-warning></apocalyptic-warning>组件 - 及时提醒僵尸启示录。

自定义<slot></slot>

<slot></slot>允许我们自定义模板的渲染内容。例如:

<template>
  <p>这<slot>僵尸</slot> 来了!</p>
</template>

没有进一步的规格,<slot></slot>默认为其封闭内容(“僵尸”)。 name属性提供了更多控制:

<template>
  <p>这<slot name="whats-coming">僵尸</slot> 来了!</p>
</template>

这会创建一个“想法”的插槽,允许灵活的内容插入(机器人,狼人,甚至是Web组件启示录!)。

组件实现

现在,让我们使用组件:

<apocalyptic-warning>吸血病负责亡灵小兵</apocalyptic-warning>

<apocalyptic-warning></apocalyptic-warning>组件的行为就像标准HTML元素。标签中的内容取代了“僵尸”占位符。请记住:自定义元素名称必须包括连字符(以防止与未来的HTML元素命名冲突)。

组件注册(JavaScript)

尽管某些JavaScript是必要的,但它比预期的要少得多。构造函数函数注册自定义元素:

 customElements.define(“ apocalyptic-warning”,类扩展htmlelemt {
  constructor(){
    极好的();
    让警告= document.getElementById(“ WarningTemplate”);
    让mywarning = parnning.content;
    const shadowroot = this.attachshadow({mode:“ open”})。附录(mywarning.cloneNode(true));
  }
});

评论的代码解释了每个步骤。关键路线:

 const shadowroot = this.attachshadow({mode:“ open”})。附录(mywarning.cloneNode(true));

创建一个阴影DOM(使用mode: "open"用于外部JavaScript访问),附加克隆模板,并集成<slot></slot>机制。

使用CSS造型

CSS样式很简单。包括

<template>
  <style>
    p { background-color: pink; padding: 0.5em; border: 1px solid red; }
  </style>这<slot name="whats-coming">僵尸</slot>来了!</template>

阴影圆顶确保样式封装。当插入的内容位于模板之外时,它是自定义元素的一部分,允许外部CSS选择器对其进行样式。但是,外部样式无法直接访问<template></template>或阴影dom。

一个完整的例子:僵尸约会资料

让我们建立一个<zombie-profile></zombie-profile>组件,展示两个内部

The JavaScript remains similar, changing only the component name:

customElements.define("zombie-profile", class extends HTMLElement { /* ... */ });

The HTML template includes encapsulated CSS:

<template>
  <style> /* ... CSS styles ... */ </style>
<code><div>...</div></code>外部CSS(默认内容和开槽内容):<pre class="brush:php;toolbar:false"> Zombie-Profile { / * ...样式... * /}

这种整体方法证明了Web组件的力量和简单性。

尽管存在微妙之处,但核心概念是可以访问的。尝试您项目中的Web组件,以欣赏它们的易用性和利益。现在,唯一真正的恐惧是...僵尸启示录(以及我的每日diem是否涵盖小吃)。

以上是网络组件比您想象的要容易的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
@rules具有多少特异性,例如@keyframes和@media?@rules具有多少特异性,例如@keyframes和@media?Apr 18, 2025 am 11:34 AM

前几天我得到了这个问题。我的第一个想法是:奇怪的问题!特异性是关于选择者的,而在符号不是选择器,那么...无关紧要?

您可以嵌套@Media和@support查询吗?您可以嵌套@Media和@support查询吗?Apr 18, 2025 am 11:32 AM

是的,您可以,而且它并不重要。不需要CSS预处理器。它在常规CSS中起作用。

快速吞噬缓存破坏快速吞噬缓存破坏Apr 18, 2025 am 11:23 AM

您应该肯定会在CSS和JavaScript(以及图像和字体以及其他内容)等资产上设置遥远的高速缓存标头。告诉浏览器

寻找可以监视CSS质量和复杂性的堆栈寻找可以监视CSS质量和复杂性的堆栈Apr 18, 2025 am 11:22 AM

许多开发人员写了如何维护CSS代码库的文章,但并没有很多关于如何测量该代码库质量的文章。当然,我们有

数据学家用于建议不执行值的值数据学家用于建议不执行值的值Apr 18, 2025 am 11:08 AM

您是否曾经有一种需要接受简短而任意的文本的表格?喜欢名字或其他。那完全是用的。有很多

苏黎世的最初会议苏黎世的最初会议Apr 18, 2025 am 11:03 AM

我很高兴能前往瑞士苏黎世参加前界(Love the Name and URL!)。我以前从未去过瑞士,所以我很兴奋

使用CloudFlare工人建立全栈无服务器应用程序使用CloudFlare工人建立全栈无服务器应用程序Apr 18, 2025 am 10:58 AM

我在软件开发方面最喜欢的发展之一是无服务器的出现。作为一个倾向于陷入细节的开发人员

在NUXT应用程序中创建动态路由在NUXT应用程序中创建动态路由Apr 18, 2025 am 10:53 AM

在这篇文章中,我们将使用我构建和部署的电子商务商店演示来进行Netlify,以展示如何为传入数据制作动态路线。这是一个公平的

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。