Vue实例在创建、运行、销毁的过程中,会伴随各种事件(函数),这些事件就是Vue的生命周期函数,也叫作生命周期钩子。
生命周期函数可以分为三类:创建期间生命周期函数、运行期间生命周期函数、销毁期间生命周期函数
官方文档:
https://v2.cn.vuejs.org/v2/guide/instance.html
Vue生命周期流程图
new Vue() → 创建Vue实例
init() → 实例初始化
在实例初始化过程中,遇到第一个生命周期函数beforeCreate,它属于创建期间生命周期函数。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<div id="app" v-cloak>
div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: "Hello world"
},
methods: {
show(){
console.log("Hello")
}
},
beforeCreate() {
console.log(this.msg)
this.show()
}
})
script>
body>
html>
生命周期函数不用手动调用,在创建Vue实例时,会自动调用
查看控制台输出:
根据这个执行结果,可以知道:
测试
可以看到:
再下来
流程图中,判断实例中是否有el和template属性。
beforeMount是创建期间第三个生命周期函数,从这个生命周期函数开始,Vue开始编译模板、渲染数据、将data中的数据渲染到视图层的HTML页面上。
使用原生JS查看是否能够获取到数据:
可以看到在beforeMount生命周期函数中,Vue开始编译模板、渲染数据,但是并没有真实挂在到HTML页面上,所以控制台打印出了源码,而不是真实的数据。
再下来,创建期间最后一个生命周期函数是mounted,它表示将数据渲染完成,真实挂载到页面中。
到这个时候,Vue实例创建完成。