Vue的生命周期

Vue实例为生命周期提供了回调函数,用来在特定的情况下触发,贯穿了Vue实例化的整个过程,这给用户在不同阶段添加自己的代码提供了机会。

每个Vue实例在被创建时都要经过一系列的初始化过程,如初始数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。

1.钩子函数

钩子函数用来描述Vue实例从创建到销毁的整个生命周期

钩子说明
beforeCreate创建实例对象之前执行
created创建实例对象之后执行
beforeMount页面挂载成功之前执行
mounted页面挂载成功之后执行
beforeUpdate组件更新之前执行
updated组件更新之后执行
beforeDestroy实例销毁之前执行
destroyed实例销毁之后执行
2.beforeCreate和created钩子函数的使用:创建实例
Vue
<div id="app">
{{msg}}
</div>
<script>
var vm = new Vue({
el:'#app',
data:{msg:'张三'}
,
beforeCreate(){
console.log("实例创建之前")
console.log(this.data.msg)
},
created(){
console.log('实例创建之后')
consolo.log(this.data.msg)
}
})
</script>
3.beforeMount和mounted钩子函数的使用:页面挂载
Vue
<div id="app">{{msg}}</div>
<script>
var vm = new Vue({
el:'#app',
data:{msg:'张三'},
beforeMount(){
console.log('挂载之前')
console.log(this.$el.innerHTML)
},
mounted(){
console.log('挂载之后')
console.log(this.$el.innerHTML)
}
})
</script>
4.beforeUpdate和updated钩子函数的使用:数据更新
Vue
<div id="app">
<div v-if="isshow" ref="div">test</div>
<button @click="isshow=!isshow">更新</button>
</div>
<script>
var vm = new Vue({
el:'#app',
data:{
isshow:false
},
beforeUpdate(){
console.log('更新之前')
console.log(this.$refs.div)
},
updated(){
console.log('更新之后')
console.log(this.$refs.div)
}
})
</script>
5.beforeDestrory和destroyed钩子函数的使用:实例销毁
Vue
<div id="app">
<div ref="div">test</div>
</div>
<script>
var vm = new Vue({
el:'#app',
data:{msg:'张三'},
beforeDestroy(){
console.log('销毁之前')
console.log(this.$refs.div)
console.log(this.msg)
console.log(vm)
},
destroyed(){
console.log("销毁之后")
console.log(this.$refs.div)
console.log(this.msg)
console.log(vm)
}
})
</script>
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部