vue 生命周期
vue的生命周期就是vue实例从创建到销毁的整个过程
vue总共有总共有11个生命周期函数
1. 创建前后: beforeCreate -- created
2. 挂载前后: beforeMount -- mounted
3. 更新前后: beforeUpdate -- updated
4. 销毁前后: beforeDestroy -- destroyed
配合keep-alive使用的:
activated: 组件激活时调用
deactivated: 组件停用的时候调用
捕捉子组件错误时调用: errorCaptured
创建前后:实例的创建; 从 创建后(created)开始可以获取data内的数据
挂载前后:dom的挂载, 从 挂载后(mounted开始可以获取dom元素)
如果非要在 created内获取dom元素:
<p ref="hahatag" @click="add">haha</p>
created() {
this.$nextTick().then(res=>{
console.log('ref获取--nextTick',this.$refs['hahatag'])
})
this.$nextTick(()=>{
console.log('ref获取--nextTick',this.$refs['hahatag'])
})
setTimeout(()=>{
console.log('ref获取setTimeout',this.$refs['hahatag'])
})
},
声明周期函数通常所做的事情:
beforeCreate: 修改页面的title 页面加载的进度条
created: 发送网络请求
mounted:发送网络请求
beforeUpdate -- updated 什么更新?视图的更新
beforeDestroy -- destroyed
清除定时任务: setTimeout setInterval
移除监听: .removeEventLinster() this.$bus.$off()
errorCaptured捕捉子组件的错误的,有三个参数:
1. 错误的信息
2. 错误的组件
3. 错误的位置
可以返回值: 如果返回true,错误向外暴露,如果返回false 错误隐藏
errorCaptured(a,b,c) {
console.log('errorCaptured',a,b,c)
return true
},