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

相关文章

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java