Angular 路由器:使用 RouterLink、Navigate 或 NavigateByUrl 进行导航

本文主要是介绍Angular 路由器:使用 RouterLink、Navigate 或 NavigateByUrl 进行导航,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

在 Angular 中,RouterLink 是一个用于以声明方式导航到不同路由的指令。Router.navigateRouter.navigateByURLRouter 类中可用的两种方法,用于在组件类中以命令方式导航。

让我们来探讨如何使用 RouterLinkRouter.navigateRouter.navigateByURL

使用 RouterLink

HTML 中的典型链接如下所示:

<a href="/example">Example HTML link.
</a>

这个示例链接将用户引导到 /example 页面。

然而,单页面应用程序(SPA)没有不同的页面可供链接。相反,它有不同的 视图 可以展示给用户。为了允许用户导航和更改视图,您将希望使用 RouterLink 指令而不是 href

<a routerLink="/users/sammy">Link that uses a string.
</a>

这个 RouterLink 示例将用户引导到 /users/sammy 组件。

不同的 URL 段也可以像这样以数组的形式传递:

<a [routerLink]="['/', 'users', 'sammy']">Link that uses an array.
</a>

这两个示例格式不同,但将引导到相同的 /users/sammy 组件。

相对路径

您可以使用 '../ 来在导航中向上移动到更高级别,使用类似以下的内容:

<a [routerLink]="['../', 'posts', 'sammy']">Link that goes up a level.
</a>

在这个示例中,如果用户在 /users/sammy,导航将变为 /posts/sammy

可以在第一个 URL 段之前加上 ./../ 或没有前导斜杠。

参数

您可以通过在 URL 段列表中传递对象来传递参数到导航中:

<a [routerLink]="['/', 'users', {display: 'verbose'}, 'sammy']">Link with parameter.
</a>

在这个示例中,Router 将导航到 /users;display=verbose/sammy

命名出口

您可以告诉 Router 在命名的 outlet 中放置什么,类似以下的内容:

<a [routerLink]="['/', 'users', { outlets: { side: ['sammy'] } }]">Link with a side outlet.
</a>

在这个示例中,sammy 段将被放置在名为 sideoutlet 中。

也可以告诉 Router 在多个命名的 outlet 中放置什么,类似以下的内容:

<a [routerLink]="['/', 'users', { outlets: { side: ['sammy'], footer: ['sharks'] } }]">Link with a side and footer outlets.
</a>

在这个示例中,sammy 段将被放置在名为 sideoutlet 中,而 sharks 段将被放置在名为 footeroutlet 中。

使用 Router

在 Angular 的 Router 类中有两种方法可供在组件类中以命令方式导航:Router.navigateRouter.navigateByUrl。这两种方法都返回一个 promise,如果导航成功则解析为 true,如果没有导航则解析为 null,如果导航失败则解析为 false,如果出现错误则完全被拒绝。

要使用其中任何一种方法,首先要确保 Router 类被注入到您的组件类中。

首先,将 Router 导入到您的组件类中:

import { Component } from '@angular/core';
import { Router } from '@angular/router';

然后,将 Router 添加到依赖项中:

@Component({// ...
})
export class AppComponent {constructor(private router: Router) {// ...}// ...
}

现在,您可以使用 Router.navigateRouter.navigateByUrl

Router.navigate

您可以将 URL 段的数组传递给 Router.navigate

以下是使用 Router.navigate 方法的基本示例:

goPlaces() {this.router.navigate(['/', 'users']);
}

以下是演示 Router.navigate 如何 thenable 的示例:

goPlaces() {this.router.navigate(['/', 'users']).then(nav => {console.log(nav); // 如果导航成功则为 true}, err => {console.log(err) // 当出现错误时});
}

在这个示例中,如果 Router.navigate 成功,它将显示 true。如果 Router.navigate 失败,它将显示一个错误。

Router.navigateByUrl

Router.navigateByUrlRouter.navigate类似,不同之处在于传入的是字符串而不是URL片段。导航应该是绝对的,并以/开头。

以下是使用Router.navigateByUrl方法的基本示例:

goPlaces() {this.router.navigateByUrl('/users;display=verbose/sammy');
}

在这个示例中,Router.navigateByUrl将导航到/users;display=verbose/sammy

结论

在本文中,您了解了Angular应用程序中的导航。您已经了解了RouterLinkRouter.navigateRouter.navigateByURL

如果您想了解更多关于Angular的信息,请查看我们的Angular主题页面,了解练习和编程项目。

这篇关于Angular 路由器:使用 RouterLink、Navigate 或 NavigateByUrl 进行导航的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727512

相关文章

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4