在第一次加载 Vue 页面时,会依次触发以下生命周期钩子(以 Vue 2 和 Vue 3 大体一致的流程为准):
beforeCreate
实例刚被创建,数据观测 (data observer) 和事件配置尚未开始,data、methods等选项还未初始化,不能访问data中的数据。created
实例已经创建完成,完成了数据观测、属性和方法的运算,watch/event事件回调已配置。此时可以访问data、调用methods,但$el还不存在,页面尚未渲染。常用于发起异步请求(如axios获取数据)。beforeMount
模板编译完成,即将开始挂载。此时$el已被创建,但尚未将VNode渲染到页面上,页面仍为空。mounted
组件已挂载到 DOM 中,$el被新创建的vm.$el替换,并插入父容器。此时可以访问 DOM 元素,常用于操作 DOM、启动定时器、或在数据加载后执行依赖 DOM 的操作。
总结:
第一次加载时,按顺序触发的生命周期钩子为:beforeCreate→created→beforeMount→mounted⚠️ 注意:
beforeUpdate和updated只在数据更新时触发,首次加载不会执行。destroyed/unmounted是组件销毁时才触发。
THE END


