javascript - 关于自定义 Web 组件和生命周期回调的说明

标签 javascript html lifecycle web-component custom-element

我希望得到一些与自定义元素及其生命周期回调相关的澄清:

  1. 我对元素创建的回调有一些困惑。该规范说:“在创建元素的每个实例时调用。”根据我的想法,实例在创建后立即“虚拟”插入到 dom 中,因此在文档流中本质上背靠背执行这两个回调的好处是。我还在网上读到,创建的回调与定义的元素关系更密切。以下哪种情况是规范所规定的。

  2. 这可能与上一个问题类似:我看到将自定义元素放入文档的 3 种方法:

    1. 它从一开始就是文档的一部分。在这种情况下,相对于 document.readyState 事件,定义何时被注册?

    2. 它是通过 javascript 插入的。我假设程序员将在创建和插入之前注册定义。那么,问题是:创建的回调什么时候触发?附加的回调何时触发?最后,如果我设置其他元素在插入时与我的元素交互,我什么时候可以确定该工作已完成?

    3. 我能想到的最后一个方法涉及到 Shadow dom,以及元素一半在文档中一半在文档外的感觉。

感谢您的阅读,如果您能够提供任何澄清和启发,我将不胜感激。

最佳答案

我可以为你回答1和2.2。

[注意:这适用于 native 实现,而不是聚合物]

首先,创建的回调在声明中使用。 当您创建元素时会调用它。 所以当你这样做时

var myElement = document.createElement("custom-element");

在调用下一行代码之前调用createdCallback。

当你表演时

document.body.appendChild(myElement);

attachedCallback 在调用下一行代码之前被调用。

现在,与我在自定义元素测试中注意到的情况相比,shadowDom 及其 css 可能会延迟一些。

关于javascript - 关于自定义 Web 组件和生命周期回调的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112052/

相关文章:

javascript - 编译Javascript

android - 如何测试 Activity 的 onDestroy 方法

javascript - 谷歌网站中的折叠和展开按钮

javascript - jquery - 在 Yii2 中显示已完成步骤的多步进度条

android - 从实用程序类获取 Activity

javascript - 在没有事件的情况下,如何使用参数 "COUNTRY_ID"发布到 API

javascript - 为什么这个变量的值未定义

javascript - Jquery 在单击时向字段添加自动对焦

javascript - 如何在ASPX页面弹出条件确认框?

javascript - 如果日期过期,使用 javascript 更改背景 <tr>