钩子函数:
应用场景:
created:里发送ajax请求
钩子函数:
应用场景:
mounted:里面操作DOM
<template>
<div id="app">
<h1>生命周期与钩子函数</h1>
</div>
</template>
<script>
export default {
data() {
return {
money: 10000
}
},
beforeCreate() {
console.log('数据初始化之前执行', this.money)
},
created() {
console.log('数据初始化之后执行', this.money)
},
beforeMount() {
console.log('在DOM渲染之前执行', document.querySelector('h1'))
},
mounted() {
console.log('在DOM渲染之后执行', document.querySelector('h1'))
}
}
</script>
<style></style>
钩子函数:
应用场景:
updated:数据变化之后,操作DOM (一般用)
beforeUpdate() {
console.log('DOM更新之前执行', this.money)
},
updated() {
console.log('DOM更新之后执行', this.money)
}
钩子函数:
应用场景:
beforeDestroy:释放资源
销毁:调用destroy
方法 :
methods: {
kill() {
this.$destroy()
}
},
beforeDestroy() {
console.log('组件销毁之前执行')
},
destroyed() {
console.log('组件销毁之后执行')
}
}
例如:
在组件销毁之后,定时器依旧执行,且无法销毁,占用内存!
mounted() {
// console.log('在DOM渲染之后执行', document.querySelector('h1'))
// 开启定时器
this.timer = setInterval(() => {
console.log('定时器开启', this.money)
}, 1000)
},
在beforeDestroy中,清除定时器
beforeDestroy() {
// console.log('组件销毁之前执行')
clearInterval(this.timer)
},
初始化阶段:
beforeCreate(父组件) ==> created(父组件) ==> beforeMount(父组件) ==> beforeCreate(子组件) ==> created(子组件) ==> beforeMount (子组件) ==> mounted(子组件) ==> 父 mounted(父组件)
更新阶段:
beforeUpdate(父组件) ==> updated(父组件)
beforeUpdate(父组件) ==> beforeUpdate(子组件) ==> updated(子组件) ==> updated(父组件)
销毁阶段:
beforeDestroy(父组件) ==> beforeDestroy(子组件) ==> destroyed(子组件) ==> destroyed(父组件)
因篇幅问题不能全部显示,请点此查看更多更全内容