社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。从vue实例的创建,运行,销毁期间,总是伴随着各种各样的事件,这些事件统称为生命周期。
Vue生命周期经历哪些阶段:
总体来说:初始化、运行中、销毁
详细来说:开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程
以下是Vue生命周期函数图示:
可以看到在vue一整个的生命周期中会有很多钩子函数提供给我们在vue生命周期不同的时刻进行操作,钩子函数如下:
详细情况如下:
代码演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Vue实例生命周期函数</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app"></div>
<script>
//生命周期函数就是Vue实例在某一个时间点会自动执行的函数
var vm=new Vue({
el:"#app",
template:"<div>{{test}}</div>",
data:{
test:"hello"
},
computed:{
},
beforeCreate:function(){
console.log("----beforeCreate---创建前状态---")
console.log(this.$el)
},
created:function(){
console.log("----created---创建完状态--")
console.log(this.$el)
},
beforeMount:function(){
console.log("----beforeMount---挂载前状态--")
console.log(this.$el)
},
mounted:function(){
console.log("---mounted---挂载完状态--")
console.log(this.$el)
},
beforeUpdate:function(){
console.log("----beforeUpdate---更新前状态--")
console.log(this.$el)
},
updated:function(){
console.log("---updated---更新完状态--")
console.log(this.$el)
},
beforeDestroy:function(){
console.log("---beforeDestroy---销毁前状态--")
console.log(this.$el)
},
destroyed:function(){
console.log("---destroyed---销毁完状态--")
console.log(this.$el)
},
})
</script>
</body>
</html>
代码显示:
页面显示的数据和挂载的数据一致:
修改数据之后:
数据更新之后页面显示和输入一致:
当经过某种途径调用$destroy方法后,在实例销毁之前 立即执行beforeDestroy,在实例销毁之前调用。在这一步,实例仍然完全可用。
以上是我对Vue生命周期的一点理解,欢迎大家指正修改!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!