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 相关文章推荐
JQuery1.4+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
jquery ajax abort()的使用方法
Oct 28 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
详解如何让Express支持async/await
Oct 09 Javascript
vue :src 文件路径错误问题的解决方法
May 15 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
对vue中v-if的常见使用方法详解
Sep 28 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
Sep 21 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
浅谈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
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php 代码优化之经典示例
2011/03/24 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP7.0版本备注
2015/07/23 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
军训 自我鉴定
2014/02/03 职场文书
生日寄语大全
2014/04/08 职场文书
实习生岗位职责
2014/04/12 职场文书
团支部推优材料
2014/05/21 职场文书
房屋出租委托书格式
2014/09/23 职场文书
销售助理岗位职责
2015/02/11 职场文书
小学见习报告
2015/06/23 职场文书
KTV员工管理制度
2015/08/06 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android