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代码优化 选择符篇
Nov 01 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
js实现每日签到功能
Nov 29 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 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使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
php语法检查的方法总结
2019/01/21 PHP
Smarty模板配置实例简析
2019/07/20 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
python对数组进行反转的方法
2015/05/20 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
Python装饰器语法糖
2019/01/02 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
python如何设置静态变量
2020/09/07 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
终端业务员岗位职责
2013/11/27 职场文书
新学期开学寄语
2014/01/18 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
活动主持人开场白
2015/05/28 职场文书
跑出一片天观后感
2015/06/08 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
员工担保书范本
2015/09/22 职场文书
节约用水广告语60条
2019/11/14 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js