vue系列_vue-Router_全局路由守卫

一、给vue-Router的对象(实例),增加如下代码:

router.beforeEach((to, from, next) => {
	console.log(to.fullPath);
	if(to.fullPath!='/login'){//如果不是登录组件
		if(!localStorage.getItem("username")){//如果没有登录,就先进入login组件进行登录
			next('/login');
		}else{//如果登录了,那就继续
			next();
		}
	}else{//如果是登录组件,那就继续。
		next();	
	}
})

       以上代码表示,进入任何路由前,都需要先判断是否登录过,如果没有登录过,那就进入登录组件(/login)进行登录。如果登录过,那就一切正常,这就是路由守卫的意思。

二、完整代码:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css">	
	</style>
</head>
<body>
	<div id="app">
	    <router-link to='/addGoods'>添加商品</router-link>
    	<router-link to='/goodslist'>商品列表</router-link>
    	<hr/>
    	<router-view/>
	</div>
</body>
</html>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<script type="text/javascript">

// 登录组件
let login={
	template:"<h1>亲,先登录噢</h1>"
}	

// import addGoods from './addGoods';//引入组件:addGoods
// 定义组件(不引入了,直接定义)
let addGoods={
	data:function(){
		return {}
	},
	template:"<h1>添加商品</h1>"
}
// import goodslist from './goodslist';//引入组件:goodslist
//定义组件(不引入了,直接定义)
let goodslist={
	data:function(){
		return {}
	},
	template:"<h1>商品列表</h1>"
	
}

//路由配置:是个json数组,不同的路径对应不同的组件
const routeObjs = [
  {
		path: '/addGoods',    //请求的路径:根目录下的addGoods
		component:  addGoods    //组件名
   },
  {
		path: '/goodslist',    //请求的路径:根目录下的goodslist
		component:  goodslist    //组件名

   },
   {
	   	path:'/login',
	   	component:login
   }
]

const router = new VueRouter({
  routes:routeObjs //routeObjs就是上面的路由配置
})

router.beforeEach((to, from, next) => {
	console.log(to.fullPath);
	if(to.fullPath!='/login'){//如果不是登录组件
		if(!localStorage.getItem("username")){//如果没有登录,就先进入login组件进行登录
			next('/login');
		}else{//如果登录了,那就继续
			next();
		}
	}else{//如果是登录组件,那就继续。
		next();	
	}
})

let vum = new Vue({
  el:"#app",
  router:router,//把路由对象传入到Vue对象里
  components:{
  	login,addGoods,goodslist
  }
})



</script>

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值