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代码
Mar 07 Javascript
jQuery 页面载入进度条实现代码
Feb 08 Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
jQuery根据元素值删除数组元素的方法
Jun 24 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
JavaScript中的闭包
Feb 24 Javascript
JS实现图片垂直居中显示小结
Dec 13 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
JS实现前端路由功能示例【原生路由】
May 29 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 Javascript
ant design vue导航菜单与路由配置操作
Oct 28 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防注入代码
2010/04/07 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
自己编写的类似JS的trim方法
2013/10/09 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
python中map()函数的使用方法示例
2017/09/29 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
python解释器spython使用及原理解析
2019/08/24 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
北京离婚协议书范文2014
2014/09/29 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
python标准库ElementTree处理xml
2022/05/20 Python
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL