面试题:第一次加载 Vue 页面时会触发哪些生命周期钩子?

在第一次加载 Vue 页面时,会依次触发以下生命周期钩子(以 Vue 2 和 Vue 3 大体一致的流程为准):

  1. beforeCreate
    实例刚被创建,数据观测 (data observer) 和事件配置尚未开始,datamethods 等选项还未初始化,不能访问 data 中的数据。
  2. created
    实例已经创建完成,完成了数据观测、属性和方法的运算,watch/event 事件回调已配置。此时可以访问 data、调用 methods,但 $el 还不存在,页面尚未渲染。常用于发起异步请求(如 axios 获取数据)。
  3. beforeMount
    模板编译完成,即将开始挂载。此时 $el 已被创建,但尚未将 VNode 渲染到页面上,页面仍为空。
  4. mounted
    组件已挂载到 DOM 中,$el 被新创建的 vm.$el 替换,并插入父容器。此时可以访问 DOM 元素,常用于操作 DOM、启动定时器、或在数据加载后执行依赖 DOM 的操作。

总结:
第一次加载时,按顺序触发的生命周期钩子为:
beforeCreatecreatedbeforeMountmounted

⚠️ 注意:beforeUpdateupdated 只在数据更新时触发,首次加载不会执行。
destroyed / unmounted 是组件销毁时才触发。

THE END
喜欢就支持一下吧
点赞13 分享