目录
1.引出生命周期
<body>
<div id="root">
<h1 :style="{opacity}">欢迎学习Vue</h1>
</div>
</body>
<script>
new Vue({
el: '#root',
data: {
opacity: 1,
},
methods: {
},
//第一次进入页面
//Vue完成模板的解析,并把真实的dom元素放入页面后调用Mounted(挂载完毕)
mounted() {
setInterval(() => {
this.opacity -= 0.01
if (this.opacity <= 0) this.opacity = 1
}, 16)
},
})
</script>
什么时候调用mounted函数?
Vue完成模板的解析,并把真实的dom元素放入页面后调用mounted,即挂载完毕后。
总结:
生命周期:
1. 又名:生命周期回调函数,生命周期函数,生命周期钩子。
2. 是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数。
3. 生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写。
4. 生命周期函数中的this指向是vm或组件实例对象。
2.分析生命周期
<body>
<div id="root">
<h2>当前的值是:{{n}}</h2>
<button @click="add">点我</button>
<button @click="bye">点我销毁vm</button>
</div>
</body>
<script>
new Vue({
el: '#root',
data: {
n: 1
},
methods: {
add() {
this.n = this.n + 1
},
bye() {
console.log('bye')
this.$destroy()
}
},
beforeCreate() {
console.log('beforeCreate')
},
created() {
console.log('created')
},
beforeMount() {
console.log('beforeMount')
},
mounted() {
console.log('mounted')
},
beforeUpdate() {
console.log('beforeUpdate')
},
updated() {
console.log('updated')
},
beforeDestroy() {
console.log('beforeDestroy')
},
destroyed() {
console.log('destroyed')
},
})
</script>
3.总结生命周期
常用的生命周期钩子:
1.mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等初始化操作。
2.beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等收尾工作等收尾工作。
关于销毁Vue实例:
-
销毁后借助Vue开发者工具看不到任何信息
-
销毁后自定义事件会失效,但原生DOM事件依然有效
-
一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了