Angular 2中的导航功能和routerLink有什么区别?

use*_*717 2 angular2-routing angular

我正在关注官方的Angular 2教程,它使用的导航功能与routerLink非常相似.他们之间有什么区别?哪个用的?

this.router.navigate(['/detail', this.selectedHero.id]);
Run Code Online (Sandbox Code Playgroud)
[routerLink]="['/detail', hero.id]"
Run Code Online (Sandbox Code Playgroud)

Jul*_*ova 6

[routerLink]是一个Angular指令,您可以在html for <a><button>元素中使用它.该指令将侦听单击事件并导航到使用params提供的创建的路径routerLink.

this.router.navigate(['/detail', this.selectedHero.id]); 用于组件或服务中以进行导航.

routerLink指令和this.router.navigate如果指定了相同的参数应导航完全相同的网址.

  • `routerLink` 适用于任何元素,而不仅仅是 `&lt;a&gt;` 和 `&lt;button&gt;`。另一个主要区别是,对于相对导航,您需要使用 this.router.navigate() 将路线传递给relativeTo 参数,以明确相对于导航应该发生的路线,而 routerLink 自动将当前路由作为“relativeTo”传递。 (4认同)
  • 你是对的,routerLink适用于任何元素,但考虑可访问性. (2认同)