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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
JS中this上下文对象使用方式
Oct 09 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
微信小程序实现简易table表格
Jun 19 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
layui 对弹窗 form表单赋值的实现方法
Sep 04 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
Mar 26 Javascript
vue 插槽简介及使用示例
Nov 19 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
FleaPHP的安全设置方法
2008/09/15 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
pandas object格式转float64格式的方法
2018/04/10 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
python IP地址转整数
2020/11/20 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
大学生职业生涯规划书前言
2014/01/09 职场文书
初中政治教学反思
2014/01/17 职场文书
面试必备的求职信
2014/05/25 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2014年共青团工作总结
2014/12/10 职场文书
体育个人工作总结
2015/02/09 职场文书
python munch库的使用解析
2021/05/25 Python