生命周期
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210307105808937.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly 9ibG9nLmNzZG4ubmV0L3BhaW50aW5nc2t5,size_16,color_FFFFFF,t_70)create是在创建组件才执行的回调函数
mounted 是在template挂载得到dom时才生成的回调
updated 是在界面发生刷新时才发生回调的
routes中配置
全局导航守卫控制访问权限:
如果用户没有登陆,但是直接通过URL访问特定页面,需要重新导航到登陆页面:
router为路由对象,添加beforeEach导航守卫
router.beforeEach((to,from,next)=>{
//如果用户访问的登陆页,直接放行。
if(to.path===’/login’) return next();
//从sessionStorage中获取到保存的token值
const tokenStr=window.sessionStorage.getItem(‘token’)
//没有token值,强制跳转到登陆页
if(!tokenStr) return next(’/login’)
next()
})
实现退出
退出功能实现原理
基于token的方式实现退出比较简单,只需要销毁本地的token即可,这样后续的请求就不会携带
token,必须重新登陆生成一个新的token之后才可以访问页面
//清空token
window.sessionStorage.clear()
//跳转到登陆页
this.$router.push(’/login’)
keepalive
p117