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 相关文章推荐
javascript不同页面传值的改进版
Sep 30 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
使用js画图之正弦曲线
Jan 12 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
Aug 18 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
Vue动态创建注册component的实例代码
Jun 14 Javascript
微信小程序之数据绑定原理解析
Aug 14 Javascript
prettier自动格式化去换行的实现代码
Aug 25 Javascript
js代码编写无缝轮播图
Sep 13 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
重新认识php array_merge函数
2014/08/31 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
Position属性之relative用法
2015/12/14 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Django之模型层多表操作的实现
2019/01/08 Python
英国航空官网:British Airways
2016/09/11 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
JPA的特点
2014/10/25 面试题
《湘夫人》教学反思
2014/02/21 职场文书
理财计划书
2014/08/14 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2014年科研工作总结
2014/12/03 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
财务个人年度总结范文
2015/02/26 职场文书
小学中队活动总结
2015/05/11 职场文书
公司回复函格式
2015/07/14 职场文书
500字作文之关于爸爸
2019/11/14 职场文书