vue-router的钩子函数用法实例分析


Posted in Javascript onOctober 26, 2019

本文实例讲述了vue-router的钩子函数用法。分享给大家供大家参考,具体如下:

vue路由钩子大致可以分为三类:

1.全局钩子

主要包括beforeEach和aftrEach,

beforeEach函数有三个参数:

  • to:router即将进入的路由对象
  • from:当前导航即将离开的路由
  • next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。

afterEach函数不用传next()函数

这类钩子主要作用于全局,一般用来判断权限,以及以及页面丢失时候需要执行的操作,例如:

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
  const role = localStorage.getItem('ms_username');
  if(!role && to.path !== '/login'){
    next('/login');
  }else if(to.meta.permission){
    // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已
    role === 'admin' ? next() : next('/403');
  }else{
    // 简单的判断IE10及以下不进入富文本编辑器,该组件不兼容
    if(navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor'){
      Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器,请使用更高版本的浏
      览器查看', '浏览器不兼容通知', {
        confirmButtonText: '确定'
      });
    }else{
      next();
    }
  }
})

2.单个路由里面的钩子

主要用于写某个指定路由跳转时需要执行的逻辑

{
          path: '/dashboard',
          component: resolve => require(['../components/page/Dashboard.vue'], resolve),
          meta: { title: '系统首页' },
          beforeEnter: (to, from, next) => {
           },
          beforeLeave: (to, from, next) => {
          }
        },

3.组件路由

主要包括 beforeRouteEnter和beforeRouteUpdate ,beforeRouteLeave,这几个钩子都是写在组件里面也可以传三个参数(to,from,next),作用与前面类似.

beforeRouteEnter(to, from, next) {
  next(vm => {
   if (
    vm.$route.meta.hasOwnProperty('auth_key') &&
    vm.$route.meta.auth_key != ''
   ) {
    if (!vm.hasPermission(vm.$route.meta.auth_key)) {
     vm.$router.replace('/admin/noPermission')
    }
   }
  })
 },

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 面向对象之命名空间
May 04 Javascript
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
jQuery封装的获取Url中的Get参数示例
Nov 26 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
jquery制作多功能轮播图插件
Apr 02 Javascript
关于JS中prototype的理解
Sep 07 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 Javascript
Angularjs实现下拉框联动的示例代码
Aug 22 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
Feb 10 Javascript
Vue.js中的computed工作原理
Mar 22 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 #Javascript
layui实现给某一列加点击事件
Oct 26 #Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 #Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 #Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 #Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
Oct 26 #Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 #jQuery
You might like
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
PHP里的单例类写法实例
2015/06/25 PHP
srcElement表格样式
2006/09/03 Javascript
对联广告js flash激活
2006/10/19 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
公司同意接收函
2014/01/13 职场文书
职工趣味运动会方案
2014/02/10 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
长城的导游词
2015/01/30 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
大学推普周活动总结
2015/05/07 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python