Vue生命周期
1,什么叫做生命周期?
一个组件从创建到销毁的过程叫做生命周期。
2,生命周期
beforecreate 创建前
当前生命周期主要做初始化作用,可以在当前生命周期组一个loading。
created 创建后
当前生命周期函数中可以访问到vm身边所有的属性和方法,在当前生命周期函数中会将data身上所有的属性和方法都挂在vm的实例身上,当前生命周期函数中我们会将data身上所有的属性都添加一个getter/setter方法,因此我们做前端后数据交互的时候,必须在当前生命周期函数内进行。如果数据没有提前在data身上绑定,那么就不会有getter/setter方法,那么数据就不会动态的发生改变。
beforefMount 挂载前
在当前生命周期函数中,数据和模板还有结合,我们可以对数据做最后的修改,访问不到真实的DOM结构。
Mounted 挂载后
在当前生命周期函数中,数据和模板已经结合,可以通过this.$refs访问真实的DOM结构,此时要注意的是this.$refs的值必须为dom中的唯一。
document 和 ref 的区别
document是从这个页面去查找dom结构,这个dom结构是已经插入到页面的dom结构
ref是从vm的虚拟dom中查找当前元素,是从内存中查找dom结构。
beforeupdate 更新前
在data数据发生改变的时候,当前生命周期函数就会执行,在当前生命周期函数中,数据和模板还没有更新完毕,可以访问到真实的dom结构,可以做 数据最后的修改。
updatad 更新后
当前生命周期函数是数据更新后最新的dom结构,当前生命周期函数是一个频繁触发的函数,因为在当前生命周期函数中做一些事件绑定和实例化的时 候需要做一个提前判断。
beforedestroy 销毁前
在当前生命周期函数中我们还可以访问到真实的dom结构和data中的数据,我们一般会在这个生命周期函数中做一些事件解绑/移除的操作。
destroyted 销毁后
在当前生命周期函数中,dom和数据的关联已经断开,我们访问到不到真实的dom结构
多次执行的生命周期函数
beforeupdate 更新前 updatad 更新后
组件第一次创建的时候会执行哪些生命周期函数
beforecreate 创建前 created 创建后 beforefMount 挂载前 Mounted 挂载后