Vue 的生命周期可以分为 8 个生命周期的执行点,从 new 创建 Vue 对象到对象的销毁,其中 4 个基本的,4 个特殊的,在下图中,红色标注的就是 8 个生命周期的执行点,前四个为基本的,后四个为特殊的
四个基本执行点(数据加载):
四个特殊执行点(数据更新):
beforeUpdate:
updated:
beforeDestroy:
destroyed:
在代码编写中,每一个执行过程都有对应的函数事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>vuejs生命周期</title>
<script src="js/vuejs-2.5.16.js"></script>
</head>
<body>
<div id="app">
{{message}}
</div>
</body>
<script>
var vm = new Vue({
el: "#app",
data: {
message: 'hello world'
},
beforeCreate: function() {
console.log(this);
showData('创建vue实例前:beforeCreate', this);
},
created: function() {
showData('创建vue实例后:created', this);
},
beforeMount: function() {
showData('挂载到dom前:beforeMount', this);
},
mounted: function() {
showData('挂载到dom后:mounted', this);
},
beforeUpdate: function() {
showData('数据变化更新前:beforeUpdate', this);
},
updated: function() {
showData('数据变化更新后:updated', this);
},
beforeDestroy: function() {
vm.test = "3333";
showData('vue实例销毁前:beforeDestroy', this);
},
destroyed: function() {
showData('vue实例销毁后:destroyed', this);
}
});
function realDom() {
console.log('真实dom结构:' + document.getElementById('app').innerHTML);
}
function showData(process, obj) {
console.log(process);
console.log('data 数据:' + obj.message)
console.log('挂载的对象:')
console.log(obj.$el)
realDom();
console.log('------------------')
console.log('------------------')
}
//vm.message = "good...";
vm.$destroy();
</script>
</html>
评论