Vue的生命周期函数
Vue 提供了一些生命周期函数,用于管理Vue实例中的各个阶段。生命周期函数包括:
* beforeCreate:实例创建之前,此时实例的data、methods等都还未初始化; * created: 实例已经创建完成,在这一步,我们就可以访问data、methods等了,但是还没有开始编译模板; * beforeMount:在挂载之前被调用,会在render函数之前调用,此时渲染的DOM还没有渲染到页面上; * mounted:挂载完成后调用,此时渲染的DOM已经渲染到页面上了; * beforeUpdate:数据更新时调用,但是此时DOM还没有更新; * updated:数据更新后调用,此时DOM也已经更新了; * beforeDestroy:实例销毁之前被调用,此时Vue实例还可以访问; * destroyed:实例已经被销毁,此时Vue实例已经无法访问,只能手动释放内存。
Vue生命周期的基本流程: 1. 初始化数据,实例化Vue对象时,会调用beforeCreate和created钩子,此时data、methods等还没有加载。 2. 更新DOM,在template中改变数据时,Vue会检测到数据变化,触发beforeUpdate和updated钩子,此时Vue会重新渲染DOM。 3. 销毁实例,在Vue实例销毁之前,会先调用beforeDestroy钩子,此时Vue实例仍然存活,以及所有的data、methods等还可以访问,最后调用destroyed钩子,Vue实例即被销毁。
下面是一个简单的Vue实例应用的生命周期的例子:
<!DOCTYPE html>
<html>
<head>
<title>Vue 生命周期</title>
</head>
<body>
<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
text: 'Hello, World!'
},
beforeCreate: function() {
console.log('beforeCreate');
},
created: function() {
console.log('created');
},
beforeMount: function() {
console.log('beforeMount');
},
mounted: function() {
console.log('mounted');
},
beforeUpdate: function() {
console.log('beforeUpdate');
},
updated: function() {
console.log('updated');
},
beforeDestroy: function() {
console.log('beforeDestroy');
},
destroyed: function() {
console.log('destroyed');
}
});
</script>
</body>
</html>