Vue 生命周期钩子函数执行顺序详解
关于 Vue 的生命周期,下列哪项是不正确的?
A. DOM 渲染在 mounted 中就已经完成了 B. Vue 实例从创建到销毁的过程,就是生命周期 C. created 表示完成数据观测、属性和方法的运算和初始化事件,此时 $el 属性还未显示出来 D. 页面首次加载过程中,会依次触发 beforeCreate ,created ,beforeMount,mounted ,beforeUpdate,updated
输出结果是?
原因
D. 页面首次加载过程中,会依次触发 beforeCreate, created, beforeMount, mounted, beforeUpdate,updated 输出结果是不正确的。
正确的输出结果应该是:
beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated
原因是:
- beforeCreate: 在实例初始化之后,数据观测和事件初始化之前被调用。此时,vue实例的属性和方法还未被初始化。
- created: 在实例创建完成后被立即调用。此时,vue实例已经完成了数据观测、属性和方法的运算,但是'$el'属性还未显示出来。
- beforeMount: 在挂载开始之前被调用。此时,vue实例的'$el'属性已经存在,但是尚未挂载到页面上。
- mounted: 在挂载完成后被调用。此时,vue实例已经被挂载到页面上,'$el'属性对应的DOM已经渲染完成。
- beforeUpdate: 在数据更新之前被调用。此时,vue实例中的数据已经发生了改变,但是页面上的DOM尚未更新。
- updated: 在数据更新之后被调用。此时,vue实例中的数据已经更新,页面上的DOM也已经更新完成。
因此,正确的输出结果是beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated。
原文地址: https://www.cveoy.top/t/topic/qkzb 著作权归作者所有。请勿转载和采集!