vue实现点击商店购物,没有登录时,提示登录。
在router.js定义好哪些页面需要登录才能进行
{
path: '/shop/order',
name: 'order',
component: order,
meta:{
type:'login',
keepAlive:true,
showFooter:false
}
},
需要登录的路由,在meta中,定义一个type为login或者是true,false,个人喜好。
在main.js中 全局钩子函数中判断要去的页面的路由的meta是否为login,如果是再去判断是否已经登录,这里用的是session保存登录信息,也可以用vuex,但是vuex存在刷新会消失的问题。
如果session中有登录的信息,就可以跳转,没有则提示登录。
router.beforeEach((to, from, next)=>{
// if(to.meta.title){
// document.title = to.meta.title;
// }
const type = to.meta.type;
if(type == 'login'){
if(sessionStorage.getItem('username')){
next();
}else{
// ElementUI.Message('这是一条消息提示')
mui.alert('请登录后选购', '登录提示');
next('/self/login');
}
}else{
next();
}
})