vue生命周期

本文详细解释了Vue组件的生命周期钩子在项目中的使用,特别关注如何避免页面闪现问题,通过合理安排created、beforeMount和异步操作来确保登录流程与路由控制。还介绍了如何利用守卫路由监控用户登录状态。
摘要由CSDN通过智能技术生成

官方生命周期流程图:
在这里插入图片描述

生命周期钩子函数:

选项式 APIHook inside setup调用时机
beforeCreateNot needed*vue实例初始化之前调用
createdNot needed*vue实例初始化之后调用
beforeMountonBeforeMount挂载到DOM树之前调用
mountedonMounted挂载到DOM树之后调用
beforeUpdateonBeforeUpdate数据更新之前调用
updatedonUpdated数据更新之后调用
beforeUnmountonBeforeUnmountvue实例销毁之前调用
unmountedonUnmountedvue实例销毁之后调用

在页面渲染之前,有两次修改数据的机会:created和beforeMount钩子,但是都不会重新渲染页面,只是修改了数据(会在updated钩子执行前被重新渲染)。建议初始化的请求都放在这两个钩子里面(请求是异步的,放在这两个钩子能够更快地被执行完)。执行mounted的时候,页面已经渲染完毕,如果没有数据的变更的话,那么页面已经完全展示了。所以,我们在created和beforeMount请求的数据,会在updated执行之前被vue识别到数据的变化,然后重新渲染页面。

那么,假如我们的项目是调用三方登陆界面,成功登陆后才重定向到我们的页面中,这个时候就需要了解生命周期了。如果控制得不好,就会出现我们系统的主页一闪而过,才跳转到登陆界面的情况。这种情况对于用户来说体验是很不好的。如何去处理呢?
答案是将登陆放到App.vue中,在没有渲染页面的时候,就已经先一步跳转到登陆界面,登陆过后立即跳转到我们的后台。

如果要优先跳转到路由页面而非App.vue呢?
由于发送到后台的验证登陆的方法是异步的,那么无论我们把方法放到created,beforeMount,还是mounted钩子中,都不会导致页面立即跳转到登陆界面。这时候,可以用一个false的标记控制页面,当login过后就重新渲染页面,把我们的页面展示出来,虽然会有一瞬间的空白,但是在体验上面没有什么异样的感觉,比瞬间闪我们系统的页面好太多。
当然,最好的方法肯定是集成我们自己的登陆,通过守卫路由的方式去监控用户有没有登陆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值