澄清自定义Web组件和生命周期回调

时间:2015-03-18 00:17:15

标签: javascript html lifecycle web-component custom-element

我希望得到一些澄清,因为它与自定义元素及其生命周期回调有关:

  1. 我对元素创建的回调有些困惑。规范说的是:"在创建元素的每个实例时调用。"根据我的想法,一个实例被插入到dom中。它创建之后,所以这两个回调的好处基本上是在文档流程中背靠背。我还在网上看到,创建的回调与定义的元素关系更密切。这些案例中的哪一个是规范所说的。

  2. 这可能与前一个问题相似:我看到自定义元素的3种方式将其转换为文档:

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

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

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

  3. 感谢您的阅读,感谢您提供的任何澄清和启发。

1 个答案:

答案 0 :(得分:2)

我可以为你回答1和2.2。

[注意:这是针对原生实现的非聚合物]

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

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

在调用下一行代码之前,createdCallback被称为

执行时

document.body.appendChild(myElement);

调用下一行代码之前,attachCallback被称为

现在,shadowDom及其css可能比我在自定义元素测试中注意到的更加延迟。