目录
系列概述
Web组件生命周期回调
世界末日后的人组成部分
计算与connectedCallback
使用disconnectedCallback计数更新计数
带有adoptedCallbackattributeChangedCallback小丑检测
首页 web前端 css教程 上下文感知的网络组件比您想象的要容易

上下文感知的网络组件比您想象的要容易

Mar 15, 2025 am 10:25 AM

上下文感知的网络组件比您想象的要容易

本文探讨了Web组件的经常被忽视的生命周期回调,展示了它们如何启用上下文感知的元素。我们将构建一个对环境反应的Web组件,展示这些功能的功能。

系列概述

本文是简化Web组件开发的系列的一部分:

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

Web组件生命周期回调

四个关键回调管理Web组件的生命周期:

  • connectedCallback :将元素添加到DOM时发射。
  • disconnectedCallback :从DOM中删除元素时被触发。
  • adoptedCallback :将元素移至新文档时被解雇。
  • attributeChangedCallback :当观察到的属性更改时被解雇。

让我们以一个实用的例子来说明这些。

世界末日后的人组成部分

我们将创建一个<postapocalyptic-person></postapocalyptic-person>成分。每个人都是人类或僵尸,由.human.zombie班级确定其父元素。该组件将使用阴影DOM显示适当的图像。

定义(定义)(
  “昆虫世界后的人”,
  类扩展htmlelement {
    constructor(){
      极好的();
      this.shadowroot = this.attachshadow({mode:“ open”});
    }
    // ...生命周期回调将在此处添加...
  }
);
登录后复制

我们最初的HTML:

<div class="humans">
  <postapocalyptic-person></postapocalyptic-person>
</div>
<div class="zombies">
  <postapocalyptic-person></postapocalyptic-person>
</div>
登录后复制

使用connectedCallback

connectedCallback被调用<postapocalyptic-person></postapocalyptic-person>被添加到页面。我们将使用它添加图像:

 connectedCallback(){
  const image = document.createelement(“ img”);
  if(this.parentnode.classlist.contains(“人类”)){
    image.src =“ https://assets.codepen.io/1804713/lady.png”;
  } else if(this.parentnode.classlist.contains(“ Zombies”)){
    image.src =“ https://assets.codepen.io/1804713/ladyz.png”;
  }
  this.shadowroot.appendchild(image);
}
登录后复制

这样可以确保根据父母的类显示正确的图像。注意: connectedCallback可以发射多次;使用this.isConnected结合以检查连接状态。

计算与connectedCallback

让我们添加按钮添加/删除人员并跟踪计数:

<div>
  <button id="addbtn">添加一个人</button>
  <button id="rmvbtn">删除人</button>
  <br>人类: <span id="human-count">0</span>
  僵尸: <span id="zombie-count">0</span>
</div>
登录后复制

按钮事件听众:

 // ...(添加/删除人逻辑)...
登录后复制

更新connectedCallback以更新计数:

 connectedCallback(){
  // ...(图像逻辑)...
  //基于图像源的更新计数
}
登录后复制

使用disconnectedCallback计数更新计数

当一个人被删除时, disconnectedCallback折笔会减少。我们将使用图像源用作类型的代理:

 disconnectedCallback(){
  const image = this.shadowroot.queryselector('img');
  //基于图像源的减少计数
}
登录后复制

带有adoptedCallbackattributeChangedCallback小丑检测

我们将介绍隐藏小丑的可能性,将其移至<iframe></iframe>使用adoptedCallback并用attributeChangedCallback揭示它们。为简洁起见,省略了此高级示例的详细信息,但是核心概念涉及使用adoptedCallback来检测何时将组件移至新文档,并attributeChangedCallback属于属性更改,从而相应地更新图像。

这说明了生命周期回调如何为创建动态和上下文感知的Web组件提供强大的工具,从而使它们更加通用和响应。

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

See all articles