Vue2-导航守卫

这篇具有很好参考价值的文章主要介绍了Vue2-导航守卫。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Vue中,导航守卫是一组用于控制路由导航的钩子函数。这些钩子函数允许你在路由导航的不同阶段执行一些操作,比如在路由切换之前进行验证、处理路由变化等。

Vue提供了三种类型的导航守卫:

  1. 全局前置守卫:在路由切换之前执行,适用于整个应用的路由。
  2. 路由独享的守卫:在特定路由配置中定义的守卫,只对该路由生效。(不常用)
  3. 组件内的守卫:在组件内部定义的守卫,只对该组件的路由生效。

下面是每种导航守卫的示例和说明:

  1. 全局前置守卫:router.beforeEach(to, from, next)  ***(常用)
import router from './router';

router.beforeEach((to, from, next) => {
  // 在路由切换之前执行的逻辑
  console.log('Before navigating to', to.path);

  // 继续导航
  next();
});
  1. 路由独享的守卫:
import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/components/Home';
import AdminDashboard from '@/components/AdminDashboard';

Vue.use(Router);

const router = new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/admin',
      name: 'AdminDashboard',
      component: AdminDashboard,
      beforeEnter: (to, from, next) => {
        // 在路由切换之前执行的逻辑
        console.log('Before entering AdminDashboard');

        // 继续导航
        next();
      }
    }
  ]
});

export default router;

在上述示例中,AdminDashboard路由配置中定义了一个beforeEnter守卫,只有当访问该路由时才会触发。

  1. 组件内的守卫:
<template>
  <div>
    <h1>Product Detail</h1>
  </div>
</template>

<script>
export default {
  name: 'ProductDetail',
  beforeRouteEnter(to, from, next) {
    // 在组件进入路由之前执行的逻辑
    console.log('Before entering ProductDetail');

    // 继续导航
    next();
  },
  beforeRouteLeave(to, from, next) {
    // 在组件离开路由之前执行的逻辑
    console.log('Before leaving ProductDetail');

    // 继续导航
    next();
  }
};
</script>

在上述示例中,ProductDetail组件内部定义了两个导航守卫:beforeRouteEnterbeforeRouteLeavebeforeRouteEnter在组件进入路由之前执行,beforeRouteLeave在组件离开路由之前执行。

通过使用这些导航守卫,你可以在路由导航的不同阶段执行自定义的逻辑,例如验证用户权限、处理数据加载等。请根据你的需求选择适当的导航守卫类型,并在相应的位置定义守卫函数。文章来源地址https://www.toymoban.com/news/detail-818472.html

到了这里,关于Vue2-导航守卫的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue 导航守卫

    导航守卫可以控制路由的访问权限,主要是用来监听路由的进入和离开。 当进入或离开路由组件时,可以通过导航守卫做一些拦截,实现权限登录等功能。 导航守卫分为三种:全局守卫、独享守卫、组件守卫。 参数说明: 每个导航守卫都有三个参数,全局后置守卫 afterEa

    2024年02月13日
    浏览(36)
  • Vue3 中 导航守卫 的使用

    在编写vue里的登录注册时,我们始终绕不开对导航守卫的使用,vue-router4.0版里有一些重要更新,在这里分享给大家。 正如其名, vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。这里有很多方式植入路由导航中:全局的,单个路由独享的,或者组件级的。

    2024年02月02日
    浏览(41)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(75)
  • 编程式导航、缓存路由组件、路由守卫、Vue UI组件库【VUE】

    作用:不借助 router-link 实现路由跳转,让路由跳转更加灵活 具体编码: 作用:让不展示的路由组件保持挂载,不被销毁 具体编码: 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。 具体名字: (1)activated路由组件被激活时触发 (2)deactivated路由组件失

    2024年02月03日
    浏览(50)
  • 路由缓存问题 | vue-router的导航守卫

             带参路由,当 参数发生变化时,相同的组件实例将被复用 ,组件的 生命周期钩子不会被调用, 导致 请求不会被重新发送, 以至于 数据无法更新 。 两种解决方法: 1. 给 RouterView绑定key值 ,即 特点:不复用,破坏组件缓存,强制执行,存在一定的 浪费 ,即

    2024年02月09日
    浏览(41)
  • React/Vue实现路由鉴权/导航守卫/路由拦截

    1、实现思路 自己封装  AuthRoute  路由鉴权高阶组件,实现未登录拦截,并跳转到登录页面 思路为:判断本地是否有token,如果有,就返回子组件,否则就重定向到登录Login 2、实现步骤 在 components 目录中,创建 AuthRoute/index.js 文件 判断是否登录 登录时,直接渲染相应页面组

    2024年02月15日
    浏览(38)
  • 20230706----重返学习-vue路由导航守卫相关-物美后台管理系统

    常见面试题 面试题:介绍一下 vue-router 中的导航守卫函数 面试题:介绍一下你对vue-router的理解? 导航守卫函数 面试题:介绍一下 vue-router 中的导航守卫函数 在每一次路由切换的时候,首先把路由匹配、导航确认等事宜先处理好-在此期间会触发一系列的钩子函数,这些函数

    2024年02月12日
    浏览(39)
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus

    gogo code 是一个基于 AST (源代码的抽象语法结构树状表现形式)的 JavaScript/Typescript/HTML 代码转换工具,可以用它来构建一个代码转换程序来帮助自动化完成如框架升级、代码重构、多平台转换等工作。 当前 GoGoCode 支持解析和操作如下类型的代码: ○JavaScript(JSX) ○Typescript

    2024年02月12日
    浏览(51)
  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(62)
  • 【前端】在Vue2中使用Vanta.js炫酷动态背景(全屏背景)

    官网:https://www.vantajs.com/ 由于博主在参考官网及官方GitHub进行应用时遇到一些问题,因此写了该篇博客,以避免大家因找Bug而浪费时间,方便快速的应用。 注意版本 Vue的版本如下 “vue”: “^2.6.14” 渲染容器 导包 方法 完整代码: 完整代码: 参加颜色参数 如果报错:‘X

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包