创建和附加 children 的最佳时间是什么时候?
What is best time to create and attach children?
我正在制作不含聚合物的自定义元素,并且我不使用 HTML 标记。因此,为了拥有内部元素,我必须在运行时构建并附加它。 MyComponent 只是经典的视图。我可以设置一些数据 {val: 97.0, unit: '%'}
并且组件显示它。
我在 attached
或 domReady
事件中所做的所有初始化(我仍然没有得到最好的地方)。在这里,我可以将数据设置为附加的真实元素('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;
}
这里有一个问题:哪里最适合:
- 构造元素
new Element.tag('my-component');
;
- 设置样式、类 等属性;
- 用 `children.add(component);?
附加它
谢谢。
据我所知,这并不重要,除非我不鼓励使用
MyComponent.created()
来操纵 DOM 因为这会导致无限循环。
如果您在同步代码中操作 DOM,渲染将被阻止,直到您的代码完成(无论您何时添加)。
如果您在 DOM 更新之间执行异步操作(例如从服务器获取数据),浏览器可能会在更新之间重新呈现,这可能会很昂贵。我认为在这种情况下,等到您获得所有信息并立即执行所有 DOM 更新会更有效率。
我正在制作不含聚合物的自定义元素,并且我不使用 HTML 标记。因此,为了拥有内部元素,我必须在运行时构建并附加它。 MyComponent 只是经典的视图。我可以设置一些数据 {val: 97.0, unit: '%'}
并且组件显示它。
我在 attached
或 domReady
事件中所做的所有初始化(我仍然没有得到最好的地方)。在这里,我可以将数据设置为附加的真实元素('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;
}
这里有一个问题:哪里最适合:
- 构造元素
new Element.tag('my-component');
; - 设置样式、类 等属性;
- 用 `children.add(component);? 附加它
谢谢。
据我所知,这并不重要,除非我不鼓励使用
MyComponent.created()
来操纵 DOM 因为这会导致无限循环。
如果您在同步代码中操作 DOM,渲染将被阻止,直到您的代码完成(无论您何时添加)。
如果您在 DOM 更新之间执行异步操作(例如从服务器获取数据),浏览器可能会在更新之间重新呈现,这可能会很昂贵。我认为在这种情况下,等到您获得所有信息并立即执行所有 DOM 更新会更有效率。