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 相关文章推荐
javascript 按键事件(兼容各浏览器)
Dec 20 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 Javascript
浅谈JavaScript中变量和函数声明的提升
Aug 09 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
Bootstrap模态对话框用法简单示例
Aug 31 Javascript
微信小程序实现跑马灯效果
Oct 21 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 Javascript
Vue中rem与postcss-pxtorem的应用详解
Nov 20 Javascript
JS+CSS实现过渡特效
Jan 02 Javascript
JavaScript展开运算符和剩余运算符的区别详解
Feb 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
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
node.js实现端口转发
2016/04/14 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
Python socket 套接字实现通信详解
2019/08/27 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
对python中return与yield的区别详解
2020/03/12 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
食品安全责任书
2014/04/15 职场文书
食品安全承诺书范文
2014/08/29 职场文书
大学校园招聘会感想
2015/08/10 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python