Vue:router的beforeEach是什么「建议收藏」

Vue:router的beforeEach是什么「建议收藏」来自:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局守卫正如其名,vue-router提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的,单个路由独享的,或者组件级的。记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察$route对象来应对这…

大家好,又见面了,我是你们的朋友全栈君。

来自:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局守卫
正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。

记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察 $route 对象来应对这些变化,或使用 beforeRouteUpdate 的组件内守卫。

全局守卫

你可以使用 router.beforeEach 注册一个全局前置守卫:

const router = new VueRouter({ ... })

router.beforeEach((to, from, next) => {
  // ...
})

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中。

每个守卫方法接收三个参数:

to: Route: 即将要进入的目标 路由对象

from: Route: 当前导航正要离开的路由

next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。

next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。

next(false): 中断当前的导航。如果浏览器的 URL 改变了 (可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。

next(’/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。你可以向 next 传递任意位置对象,且允许设置诸如 replace: true、name: ‘home’ 之类的选项以及任何用在 router-link 的 to prop 或 router.push 中的选项。

next(error): (2.4.0+) 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。

确保要调用 next 方法,否则钩子就不会被 resolved。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149989.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 动态规划-背包问题

    动态规划-背包问题背包问题是一种组合优化的NP完全问题。有N个物品和容量为W的背包,每个物品都有自己的体积w和价值v,求拿哪些物品可以使得背包所装下的物品的总价值最大。如果限定每种物品只能选择0个或1个,则问题称为0-1背包问题;如果不限定wu’pi…

  • java wifi开发教程_WiFi技术「建议收藏」

    java wifi开发教程_WiFi技术「建议收藏」WiFi技术啥MU-MIMO:多用户-多输入多输出2x2MIMO:2个输入in,2个输出out。?一根天线既做接收也做发送,2×2即两根天线,同理4×4即为4根天线?RedmiAX6共6根天线,4根作为5G天线,2根作为2.4G天线RedmiAX6支持2x2160MHz及4x480MHz两种MU-MIMO工作模式802.11对照表协议频宽(MHz)单天线速率(Mbps…

  • 高速排序算法

    高速排序算法

    2021年11月24日
  • Linux下解压rar文件

    Linux下解压rar文件[本地环境]操作系统:Ubuntu14.0464bitsLinux操作系统环境下不支持rar文件的解压,需要安装rar压缩文件的Linux版本,下载地址:http://www.rarlab.com/download.htm下载后进入解压目录下,进行安装:rar的解压命令如下:#将*****.rar压缩文件解压到当前文件目录rare*****.r

  • docker官方英文手册

    docker官方英文手册

  • ubuntu重启nginx_ubuntu配置nginx

    ubuntu重启nginx_ubuntu配置nginx大家好,我是极智视界,本文介绍一下ubuntu安装nginx的方法。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号