vue生命周期
组件 从创建 到 销毁 的整个过程 就是****生命周期
钩子函数:
vue框架内置函数,随着组件的生命周期阶段,自动执行
作用
特定的时间点,执行特定的操作
场景
组件创建完毕后,可以在created生命周期函数中发起ajax请求,初始化data数据;mounted函数中,操作Dom元素; beforeDestory生命周期函数中 ,解绑事件,清除定时器…
4大阶段 8个方法
创建
挂载
更新
代码
<template>
<div>
<p>学习vue生命周期</p>
<p id="myP">{{ msg }}</p>
<ul id="myul">
<li v-for="(val, index) in arr">
{{ val }}
</li>
</ul>
<button @click="arr.push(122)">点击添加</button>
</div>
</template>
<script>
export default {
data() {
return {
msg: 'hello world',
arr: [5, 8, 2, 1],
timer: null,
}
},
beforeCreate() {
console.log('beforeCreate')
console.log(this.msg)
},
created() {
console.log('created')
console.log(this.msg)
this.timer = setInterval(() => {
console.log('娃哈哈')
}, 1000)
},
beforeMount() {
console.log('beforeMount')
console.log(document.getElementById('myP'))
},
mounted() {
console.log('mounted')
console.log(document.getElementById('myP'))
},
beforeUpdate() {
console.log('beforeUpdate')
console.log(document.querySelectorAll('#myul>li')[4])
},
updated() {
console.log('updated')
console.log(document.querySelectorAll('#myul>li')[4])
},
}
</script>
<style scoped></style>
销毁
- beforeDestory
- destoryed
补充生命周期
activated 激活时触发
deactivated 失去激活状态触发
<template>
<div>
<p>用户名:<input type="text" /></p>
<p>密码: <input type="text" /></p>
</div>
</template>
<script>
export default {
created() {
console.log('UserName创建')
},
destroyed() {
console.log('UserName销毁')
},
activated() {
console.log('activated')
},
deactivated() {
console.log('deactivated')
},
}
</script>
|