Vue Router中应用中间件的方法


Posted in Javascript onAugust 06, 2020

中间件是我们在软件开发中的一个古老而强大的概念,当我们在应用程序中使用路由相关模式时,它非常有用。

如果您不太了解中间件的含义,Nodejs框架Express里的中间件可以帮助您了解它们的工作原理。

但是,中间件仅适用于后端吗?

不,当应用程序中有路由时,中间件在前端或后端中就会非常常见。比如现在流行的单页应用程序。

有一些示例可以说明,何时可以使用中间件:

  • 不允许未登录用户访问您的网页。
  • 仅允许某些类型的用户查看页面(角色:管理员,作者等)
  • 数据采集。
  • 重置设置或清理存储空间。
  • 限制访问用户的年龄。

还有一些......

那么如何在Vue中使用中间件?

感谢Vue Router,这将非常简单!因为这个插件实现了一个类似的概念,称为“导航守卫”。

Vue Router中应用中间件的方法

导航守卫真的很棒,让我们在进入路由之前,更新之前和离开之前,可以执行一些代码逻辑。

Vue Router中应用中间件的方法

还可以使用全局守卫。

Vue Router中应用中间件的方法

但有时我们需要多个中间件用于同一路由,我们可以用Vue Router Multiguard包解决问题。这允许我们设置一系列守卫,如下所示:

Vue Router中应用中间件的方法

在上边示例中可以看到,通过Vue Router Multiguard,在路由配置中应用中间件很容易。让我们再看一个简化的例子:

首先,我们定义一个模拟用户。然后假设您有一个服务,可以从全局state或其他地方获得当前用户的数据。

Vue Router中应用中间件的方法

现在,我们可以用中间件创建我们的“真实”示例:

Vue Router中应用中间件的方法

PS:

1. Vue Router还有组件内的守卫

  • beforeRouteEnter
  • beforeRouteUpdate (2.2 新增)
  • beforeRouteLeave

    其中beforeRouteEnter,很适合在进入页面之前去获取数据。

2. 如果你阅读了文档,你会发现你可以将下一个路由传递给 next() 函数,例如重定向到 login - next('/login')

以上就是Vue Router中应用中间件的方法的详细内容,更多关于Vue Router中应用中间件的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
jQuery搜索同辈元素方法
Feb 10 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
Aug 11 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
Sep 03 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 Javascript
JavaScript实现点击图片换背景
Nov 20 Javascript
JavaScript Html实现移动端红包雨功能页面
Jan 10 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 #Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 #Javascript
如何利用javascript接收json信息并进行处理
Aug 06 #Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 #Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 #Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 #Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 #Javascript
You might like
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python采集博客中上传的QQ截图文件
2014/07/18 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python集合操作方法详解
2020/02/09 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
个人党性分析总结
2015/03/05 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL