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 相关文章推荐
js关闭浏览器窗口及检查浏览器关闭事件
Sep 03 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
基于Bootstrap3表格插件和分页插件实例详解
May 17 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
Sep 27 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
Javascript实现秒表计时游戏
May 27 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
php调用c接口无错版介绍
2014/03/11 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
Yii核心验证器api详解
2016/11/23 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
javascript history对象详解
2017/02/09 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
python练习程序批量修改文件名
2014/01/16 Python
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python打开网页和暂停实例
2014/09/30 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
Python如何读写字节数据
2020/08/05 Python
高级运动鞋:GREATS
2019/07/19 全球购物
质检的岗位职责
2013/11/17 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
八年级语文教学反思
2014/02/11 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
求职信的正确写法
2014/07/10 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
对学校的意见和建议
2015/06/04 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers