"Component.completed" 究竟是什么时候被解雇的?

When exactly is "Component.completed" fired?

"Component.completed" 什么时候被解雇?

文档是这样说的:

Emitted after the object has been instantiated.

如果这是 C++,我会知道,由于对象已被实例化,我可以依赖已执行的构造函数,以及由此产生的所有保证。

但在 QML 中,我不知道我对 "has been instantiated" 的对象有什么保证。那块内存已经分配给它了吗?它的属性已经评估并收到了它们的初始值?是否已加载整个后代子树?

保证它会在对象完成后触发。这包括内存分配、对象构造和 属性 绑定的装配、初始评估等。

不保证对象嵌套在树中时处理完成信号的顺序。你不应该依赖它。一个对象在其整个对象树完成之前不会完成,但由于某些无法解释的原因,您不能期望通知以树定义的顺序到达。