vue-router判断页面未登录自动跳转到登录页的方法示例


Posted in Javascript onNovember 04, 2018

1.定义路由的时候配置meta属性,requireAuth用来标记跳转的这个路由是否需要检测登录

下面的两个页面,登录页不需要检测,首页需要检测

const routers = [
{
   path: '/',
   component: App,
 children: [

  { 


path: '/login', 

  component: Login,
   meta: {
    title: '登录'

   }

 },

 { 


path: '/home', 

  component: Home,
   meta: {
    title: '首页',
    requireAuth: true
   }

 }

]
}
]
export default routers

2.main.js

返回遍历的某个路由对象,我们定义为record,检测这个对象是否拥有meta这个对象,如果有meta这个对象,检测meta对象是不是有requireAuth这个属性且为true

检测到需要登录权限后,我的做法是请求接口判断用户是否登录

如果未登录,跳转到登录页面;如果已经登录,确保要调用next()方法,否则钩子就不会被resolved

router.beforeEach((to, from, next) => {
 /* 页面title */
 if (to.meta.title) {
  document.title = to.meta.title
 }
 /* 判断该路由是否需要登录权限 */
 if (to.matched.some(record => record.meta.requireAuth)) {
  //是否登录
  axios.post('/home/user/isLogin')
    .then(function (response) {
      if (response.data.code == 0) {
        //未登录
        if (response.data.data.online == 0) {
          next({
            path: '/login',
          })
        } else {
          //已登录
          next()
        }
      }
    })
    .catch(function (error) {
      // Toast(error.data.msg);
    });

 }
 next();
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 深拷贝函数
Dec 04 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
初识Node.js
Mar 20 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
浅谈React碰到v-if
Nov 04 #Javascript
微信小程序实现顶部下拉菜单栏
Nov 04 #Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 #Javascript
基于Vue-cli快速搭建项目的完整步骤
Nov 03 #Javascript
微信小程序实现笑脸评分功能
Nov 03 #Javascript
小程序实现五星点评效果
Nov 03 #Javascript
微信小程序实现星星评价效果
Nov 02 #Javascript
You might like
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
javascript的BOM
2016/05/03 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python基础教程之异常详解
2019/01/10 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
销售找工作求职信
2013/12/20 职场文书
共产党员公开承诺书
2014/03/25 职场文书
大学生就业自荐书
2014/06/16 职场文书
中学清明节活动总结
2014/07/04 职场文书
如何写股份合作协议书
2014/09/11 职场文书
租车协议书
2015/01/27 职场文书
护士节慰问信
2015/02/15 职场文书
专家推荐信怎么写
2015/03/25 职场文书
党员带头倡议书
2015/04/29 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers