vue-router路由懒加载和权限控制详解


Posted in Javascript onDecember 13, 2017

vue-router路由懒加载 和权限控制,今天刚好搞了一个基于node token验证的小demo

所以下面介绍下,路由懒加载

1、为什么要使用路由懒加载呢

用vue.js写单页面应用时,会出现打包后的JavaScript包非常大,影响页面加载,我们可以利用路由的懒加载去优化这个问题,当我们用到某个路由后,才去加载对应的组件,这样就会更加高效

2、用法

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
 routes: [
  {
   path: '/',
meta: {
requiresAuth: true
},
   component: resolve => require(['components/Hello.vue'], resolve)
  },
  {
    path: '/about',
    component: resolve => require(['components/About.vue'], resolve)
  }
 ]
})

3、对路由钩子进行权限控制

//注册全局钩子用来拦截导航

router.beforeEach((to, from, next) => {
 //获取store里面的token
 let token = store.state.token;
 //判断要去的路由有没有requiresAuth
 if(to.meta.requiresAuth){
  if(token){
   next();
  }else{
   next({
    path: '/login',
    query: { redirect: to.fullPath } 
// 将刚刚要去的路由path(却无权限)作为参数,方便登录成功后直接跳转到该路由
   });
  }
 
 }else{
  next();//如果无需token,那么随它去吧
 }
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的日期选择控件
Oct 27 Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
Javascript中匿名函数的多种调用方式总结
Dec 06 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
Feb 28 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
微信小程序 POST请求的实例详解
Sep 29 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
JavaScript实现网页tab栏效果制作
Nov 20 Javascript
JS+canvas画一个圆锥实例代码
Dec 13 #Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 #Javascript
实例分析js事件循环机制
Dec 13 #Javascript
javascript实现QQ空间相册展示源码
Dec 12 #Javascript
自定义PC微信扫码登录样式写法
Dec 12 #Javascript
基于模板引擎Jade的应用(详解)
Dec 12 #Javascript
jquery获取transform里的值实现方法
Dec 12 #jQuery
You might like
用Php实现链结人气统计
2006/10/09 PHP
PHP多文件上传类实例
2015/03/07 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
javascript之AJAX框架使用说明
2010/04/24 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
OpenCV 模板匹配
2019/07/10 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
Python里面如何拷贝一个对象
2014/02/17 面试题
有模特经验的简历自我评价
2013/09/19 职场文书
大学学习生活感言
2014/01/18 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL
MySQL数据库简介与基本操作
2022/05/30 MySQL