返回顶部
首页 > 资讯 > 精选 >angular9中路由守卫的使用方法
  • 116
分享到

angular9中路由守卫的使用方法

2023-06-14 06:06:45 116人浏览 八月长安
摘要

小编给大家分享一下angular9中路由守卫的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!路由守卫是什么任何用户都能在任何时候导航到任何地方。但有时候出

小编给大家分享一下angular9中路由守卫的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

路由守卫是什么

任何用户都能在任何时候导航到任何地方。但有时候出于种种原因需要控制对该应用的不同部分的访问。可能包括如下场景:

该用户可能无权导航到目标组件。

可能用户得先登录(认证)。

在显示目标组件前,你可能得先获取某些数据。

在离开组件前,你可能要先保存修改。

你可能要询问用户:你是否要放弃本次更改,而不用保存它们?

相关推荐:《angular教程

组件的创建

home组件创建
2、login组件创建
3、home下的first和second子组件

angular9中路由守卫的使用方法

守卫路由相关核心代码

routing中每个路由都是对所有人开放的。这些新的管理特性应该只能被已登录用户访问。

编写一个 CanActivate() 守卫,将正在尝试访问管理组件匿名用户重定向到登录页。

1 在auth 文件夹下,新建一个auth.service.ts文件,模拟有关登录的请求服务,实际场景一般是将后台token保存在cookie中.

import { Injectable } from '@angular/core';import { Observable, of } from 'rxjs';import { tap, delay } from 'rxjs/operators';@Injectable({  providedIn: 'root',})export class AuthService {  isLoggedIn = false; //默认未登录  // 记录登录之后,需要跳转到原来请求的地址  redirectUrl: string;// 登录  login(): Observable<boolean> {    return of(true).pipe(      delay(1000),      tap(val => this.isLoggedIn = true)    );  }// 登出  loGout(): void {    this.isLoggedIn = false;  }}

2 在 auth 文件夹下,新建一个auth.guard.ts文件

import { Injectable } from '@angular/core';import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';import { AuthService } from './auth.service'; @Injectable({  providedIn: 'root',})export class AuthGuard implements CanActivate {  constructor(private authService: AuthService, private router: Router) {}  canActivate(    next: ActivatedRouteSnapshot,    state: RouterStateSnapshot): boolean {    let url: string = state.url    return this.checkLogin(url);  }    checkLogin(url: string): boolean {    if (this.authService.isLoggedIn) { return true; }    // 保存原始的请求地址,登录后跳转到该地址    this.authService.redirectUrl = url;    // 未登录,跳转到登录页面    this.router.navigate(['/login']);    return false;  }}

在路由中使用守卫

在app-routing.module.ts文件下使用

import { NgModule } from '@angular/core';import { Routes, RouterModule } from '@angular/router';import { AuthGuard } from './auth/auth.guard';import { LoginComponent } from './login/login.component';const routes: Routes = [  {    path: '',    redirectTo: '/home',    pathMatch: 'full'  },   {    path: 'login',    component: LoginComponent  },  {    path: 'home',    loadChildren: () => import('./home/home.module')      .then(mod => mod.HomeModule),    canActivate: [AuthGuard], // 守卫路由  }];@NgModule({  imports: [RouterModule.forRoot(routes)],  exports: [RouterModule]})export class AppRoutingModule {}

以上是“angular9中路由守卫的使用方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: angular9中路由守卫的使用方法

本文链接: https://lsjlt.com/news/268464.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • angular9中路由守卫的使用方法
    小编给大家分享一下angular9中路由守卫的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!路由守卫是什么任何用户都能在任何时候导航到任何地方。但有时候出...
    99+
    2023-06-14
  • Vue中路由守卫的具体使用
    目录1.全局守卫1.1 全局前置守卫1.2 全局后置路由守卫1.3 整合2. 路由独享的守卫3.组件内的守卫作用:对路由进行权限控制 分类:全局守卫、独享守卫、组件内守卫 1.全局守...
    99+
    2024-04-02
  • Angular中路由守卫的使用示例
    这篇文章主要介绍了Angular中路由守卫的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、路由守卫当用户满足一定条件才被允许进入或者离开一个路由。路由守卫场景:只...
    99+
    2023-06-06
  • vue3中的路由守卫怎么使用
    这篇文章主要介绍“vue3中的路由守卫怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue3中的路由守卫怎么使用”文章能帮助大家解决问题。路由守卫有哪几种?路由守卫(导航守卫)分为三种:全局...
    99+
    2023-07-06
  • Vue中路由守卫怎么用
    小编给大家分享一下Vue中路由守卫怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.全局守卫1.1 全局前置守卫顾名思义,前置守卫主要是在你进行路由跳转之前根据你的状态去 进行一系列操作(全局前置是为在路由初始化以及...
    99+
    2023-06-21
  • Vue中的路由使用和多种守卫方法是什么
    今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.vue-rou...
    99+
    2023-07-05
  • vue3中7种路由守卫如何使用
    全局前置守卫1.使用方式:main.js中配置,在路由跳转前触发,这个钩子作用主要是用于登录验证,也就是路由还没跳转提前告知,以免跳转了再通知就为时已晚2.代码:router.beforeEach((to,from,next)=>{}...
    99+
    2023-05-14
    Vue3
  • vue全局路由守卫如何使用
    在vue中使用全局路由守卫的方法:1.新建项目,安装vue-router;2.引入vue和vue-router;3.使用Vue.use注册路由;4.定义和配置路由;5.执行代码使用全局路由守卫;具体步骤如下:首先,新建一个html项目,并在...
    99+
    2024-04-02
  • react路由守卫的实现(路由拦截)
    react不同于vue,通过在路由里设置meta元字符实现路由拦截。在使用 Vue ,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或...
    99+
    2024-04-02
  • vue-router的路由守卫是什么
    这篇文章主要介绍“vue-router的路由守卫是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue-router的路由守卫是什么”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • Flutter路由守卫拦截的实现
    目录为什么要使用路由Flutter路由守卫拦截的实现一、路右表管理二、实现路由守卫为什么要使用路由 在之前我们的代码中,页面跳转使用的代码如下所示: Navigator.of(con...
    99+
    2024-04-02
  • 详解Vue中的路由与多种守卫
    目录什么是路由呢?什么是路由守卫呢?1.vue-router2.什么是路由路由分类3.路由的基本使用4.多级路由5.路由传参1.params2.路由的props配置3.<rou...
    99+
    2023-02-02
    Vue路由守卫 Vue中的路由
  • 一文浅析Vue中的路由和多种守卫
    4.多级路由在配置路由规则的以及路由里面进行配置下一级路由使用children:[ { } ]这种形式 routes: [{ path: '/about', compon...
    99+
    2023-05-14
    Vue
  • Vue路由导航守卫的示例分析
    这篇文章将为大家详细讲解有关Vue路由导航守卫的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概念:“导航”表示路由正在发生变化vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫...
    99+
    2023-06-22
  • 使用vue-router钩子函数怎么实现路由守卫
    这篇文章给大家介绍使用vue-router钩子函数怎么实现路由守卫,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。全局钩子函数beforeEach:beforeEach一共接收三个参数,分别是to、from、next;t...
    99+
    2023-06-14
  • Vue中的路由导航守卫导航解析流程
    目录全局前置守卫全局解析守卫全局后置钩子路由独享的守卫组件内的守卫可用的配置 API使用组合 API完整的导航解析流程正如其名,vue-router 提供的导航守卫主要用来通过跳转或...
    99+
    2023-05-16
    Vue路由导航守卫 Vue路由守卫
  • Vue3中导航守卫的基本使用方法
    目录前言:一、什么是导航守卫?二、导航守卫有哪几种?1、全局守卫(3个)全局前置守卫全局解析守卫全局后置钩子2、路由独享守卫(1个)三、导航守卫的三个参数四、如何在 vue3 中使用...
    99+
    2023-03-09
    vue 导航守卫 Vue3导航守卫 vue 导航
  • vue路由守卫的三种类型分别是什么
    这篇“vue路由守卫的三种类型分别是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“vue路由守卫的三种类型分别是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
    99+
    2023-06-06
  • vue的路由守卫和keep-alive后生命周期详解
    目录Vue-Router懒加载如何定义动态路由param方式query方式Vue-Router导航守卫全局路由钩子router.beforeEach路由独享守卫组件内的守卫befor...
    99+
    2024-04-02
  • Angular路由中的懒加载、守卫、动态参数是什么意思
    本篇内容主要讲解“Angular路由中的懒加载、守卫、动态参数是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Angular路由中的懒加载、守卫、动态参...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作