1.vue生命周期
生命周期是vue组件从创建到销毁的过程
- 初始化阶段
- beforeCreate() // 组件创建之前触发,此时还没有data、methods等
- created() //组件有data、methods等了,常用来请求数据
- 挂载阶段
- beforeMount() //虚拟dom将要和真实dom结合
- mounted() //中文意思挂载完成,这时候初始化页面完成,此时页面已经渲染出来了,可以进行dom操作(虚拟dom已经转化成真实dom了,可以进行dom操作)
- 更新阶段 //触发更新的操作有,data/props发生变换,或者强制刷新
- beforeUpdate()
- updated()
- 销毁阶段 //触发销毁的操作有,路由切换 、v-if 、v-show
- beforeDestroy()
- destroyed() //常用来销毁一些定时器,事件监听等。因为当组件销毁了,定时器还是在运行在
项目中常用的生命周期钩子有哪些
-
created()
-
mounted()
-
destroyed()
为什么不建议把数据请求放在mounted中
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
如果在mounted钩子函数中请求数据可能导致页面闪屏问题
其实就是加载时机问题,放在created里会比mounted触发早一点,如果在页面挂载完之前请求完成的话就不会看到闪屏了