生命周期
组件挂载阶段
new Vue()
表示开始创建一个vue
的实例对象初始化事件和生命周期
表示刚初始化了一个
vue
的实例对象,这时对象上只有一些默认的生命周期和默认的事件。beforecreated
生命周期执行时,data
和methods
中的数据都还没有初始化。初始化注入并检验。
created
生命周期中,data
和methods
都以及被初始化好了。如果要操作data
中的数据,最早可以在这个生命周期中操作。判断实例中是否有el选项。这里表示vue开始编辑模板,把vue代码中的那些指令执行,最终在内存中生成一个编译好的最终模板字符串。然后把这个模板字符串渲染为内存中的DOM(虚拟DOM)。此时只是在内存中渲染好了模板,并没有把模板挂载到真正的DOM中。
render
函数
render(h){
return h('div', {}, this.text)
}
// h是vue中的createElement方法
// 第一个参数是标签
// 第二个参数是一个对象,对象可以是组件上的props或者是事件之类的东西
// 第三个元素是类似div标签里面的元素
beforeMount
函数执行时,模板已经在内存中编译好了,但是尚未挂载到页面上,所以此时的页面内容还是旧的。创建
vm.$el
并用其替换"el"
将内存编译好的模板真实的替换到浏览器页面mounted
生命周期执行时,真实的DOM
已经挂载好了,组件进入了运行阶段。如果要对DOM
进行操作,最早可以在这个生命周期。
组件更新阶段
当
data
变化时,根据data
中数据,内存中重新渲染出最新的虚拟DOM
,把虚拟DOM
渲染到真实DOM
中。beforeUpdate
生命周期时,页面中的数据还是旧的,但是data已经是最新的。updated
生命周期时, 页面和数据都是最新的,更新完毕。
组件卸载阶段
beforeDestory
生命周期时,vue
组件由运行阶段进入了卸载阶段,实例上所有的data
和所有的methods
以及过滤器,指令都处于可用状态,此时还没有真正的执行销毁的过程。destroyed
生命周期时,组件已经被完全销毁了,此时组件中的所有数据,方法,指令都已经不可用了。
错误处理
在整个的过程中,vue
还为我们提供了renderError
方法,这个方法只有在开发阶段的时候被调用,在正式打包上线时不会被调用,主要可以帮助我们进行开发阶段的调试工作。
← 常用插件合集 Vue中的scope样式穿透 →