创建和附加 children 的最佳时间是什么时候?

What is best time to create and attach children?

我正在制作不含聚合物的自定义元素,并且我不使用 HTML 标记。因此,为了拥有内部元素,我必须在运行时构建并附加它。 MyComponent 只是经典的视图。我可以设置一些数据 {val: 97.0, unit: '%'} 并且组件显示它。

我在 attacheddomReady 事件中所做的所有初始化(我仍然没有得到最好的地方)。在这里,我可以将数据设置为附加的真实元素('97.0%' 到 span 元素)。

因此,我可以在构造函数 MyComponent.created()attached 事件、domReady 事件或工厂构造函数中创建内部元素,如下所示:

factory MyComponent (data) {
  var component = new Element.tag('my-component');
  component.data = data;
  component.children.add(
    new Element.span()
    ..classes.toggle('display', true)
  );
  return component;
}

这里有一个问题:哪里最适合:

  1. 构造元素 new Element.tag('my-component');;
  2. 设置样式、类 等属性;
  3. 用 `children.add(component);?
  4. 附加它

谢谢。

据我所知,这并不重要,除非我不鼓励使用 MyComponent.created() 来操纵 DOM 因为这会导致无限循环。
如果您在同步代码中操作 DOM,渲染将被阻止,直到您的代码完成(无论您何时添加)。
如果您在 DOM 更新之间执行异步操作(例如从服务器获取数据),浏览器可能会在更新之间重新呈现,这可能会很昂贵。我认为在这种情况下,等到您获得所有信息并立即执行所有 DOM 更新会更有效率。