【问题标题】:WebComponents/Polymer - Lifecycle Callback Ordering in TreesWebComponents/Polymer - 树中的生命周期回调排序
【发布时间】:2014-05-01 17:57:25
【问题描述】:

假设我有以下 html:

<my-element-one>
    <my-element-two>
        <my-element-three></my-element-three>
    </my-element-two>
</my-element-one>

现在,假设这被解析为 DocumentFragment。现在,我将片段插入到文档中。这些自定义元素的 attachCallbacks 会按什么顺序触发?他们会始终先开火(三、二、一)吗?还是他们会从上到下(一、二、三)开火?还是完全不确定?如果我稍后删除整个树,detachedCallbacks 会按什么顺序触发?

最后,这种行为在 polyfill 和 W3C 规范的预期行为之间是否一致?我已经阅读了一堆规范,但没有找到关于这种排序应该如何发挥作用的明确解释。

【问题讨论】:

标签: polymer web-component


【解决方案1】:

虽然我假设您最初的问题是关于自定义元素的,但我已经使用 Polymer 整理了一个示例,该示例尝试复制您感兴趣的树顺序:

http://jsbin.com/yisaqe/3/edit

在这种情况下,我们看到生命周期回调是从上到下(一、二、三)执行的,而不是深度优先(三、二、一):

如果您稍后删除整个树,则分离的回调类似地以从上到下的顺序执行(一、二、三 - 见控制台)

http://jsbin.com/mejija/1/edit

我认为这在 polyfill 和规范的预期行为之间是一致的,但我无法从规范中确定这是否意味着不同。我希望至少这些概念证明是有用的。

【讨论】:

  • 谢谢艾迪。如果您碰巧在规范中遇到明确指出这是行为的内容,请分享。否则,也许我们应该与规范作者交谈并澄清这一点。
猜你喜欢
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多