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 相关文章推荐
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
jQuery - css() 方法示例详解
Jan 16 Javascript
js带点自动图片轮播幻灯片特效代码分享
Sep 07 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
JavaScript基于对象去除数组重复项的方法
Oct 09 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
详解vuex 中的 state 在组件中如何监听
May 23 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
Vue项目中使用flow做类型检测的方法
Mar 18 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将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
Yii学习总结之安装配置
2015/02/22 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
PHP7变量处理机制修改
2021/03/09 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Python简单基础小程序的实例代码
2019/04/28 Python
python ChainMap的使用和说明详解
2019/06/11 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
财务总经理岗位职责
2014/02/16 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
咖啡店创业计划书
2014/08/15 职场文书
小学毕业感言200字
2015/07/30 职场文书
病假条格式范文
2015/08/17 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle