在开发Cocos Creator 2.4.x 版本的游戏过程中,发现组件的生命周期与Vue2较为相似,在此将其回调与执行顺序整理如下(按先后排列):
执行流程示意图

-
onLoad
节点首次激活(场景加载或节点被激活)时触发,整个生命周期只执行一次;此时可安全访问场景中的其他节点和资源,常用于初始化设置 。
-
onEnable
当组件
enabled从false→true或节点active从false→true时触发;若节点第一次创建且默认启用,则在onLoad之后、start之前调用 。 -
start
在第一次
update之前触发,整个生命周期只执行一次;仅当组件启用且节点处于激活状态才会调用,适合初始化需要依赖组件启用状态的数据 。 -
update
组件启用后每帧调用,用于实现游戏逻辑、状态更新等 。
-
lateUpdate
所有
update执行完后每帧调用,可在此处理摄像机跟随、动画后处理等需要"后更新"的逻辑 。 -
onDisable
当组件
enabled从true→false或节点active从true→false时触发;隐藏节点或禁用组件时执行,常用于暂停逻辑或清理状态 。 -
onDestroy
节点或组件调用
destroy()后,在当前帧结束时触发,用于释放资源、解除事件监听,防止内存泄漏 。
完整调用链(正常激活 → 销毁)
onLoad → onEnable → start → update ... lateUpdate ... → onDisable → onDestroy
补充说明
- 仅
onLoad在节点未激活时也会执行;其余回调都依赖节点与组件的激活/启用状态 。 - 若节点被池中复用(如对象池),可能多次经历
onEnable / onDisable但不会重新onLoad。