Когда следует использовать href вместо routerLink в Angular? - PullRequest
0 голосов
/ 30 октября 2019

Когда я разрабатываю в Angular и создаю виды, я всегда использую routerLink для перехода от одного вида к другому. Недавно я видел важные страницы, сделанные на Angular, которые используют href вместо routerLink для маршрутизации просмотров на сайте. Мой вопрос: когда удобно использовать href вместо routerLink в Angular и почему? Это чтобы создать ощущение, что это не SPA?

Если так, я не понимаю этого, потому что он теряет весь потенциал угловой маршрутизации.

Некоторые примеры

https://brandstory.in/
https://www.forbes.com/sites/karstenstrauss/2019/01/22/the-most-sustainable-companies-in-2019/#46dd14376d7d
https://about.google/
https://www.colgate.es/
https://marketingplatform.google.com/intl/es/about/enterprise/

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Используйте href для внешних ссылок, которые используются с тегом a и routerLink для маршрутов. Вы не можете использовать href с любыми другими тегами, но только с тегом a, но вы можете использовать routerLink декоратор с другими тегами.

href является атрибутом тега a, а routerLink являетсяУгловой декоратор.

1 голос
/ 30 октября 2019

Когда мы используем href в angular, приложение теряет свое состояние и все приложение перезагружается. Но когда мы используем routerlink , состояние приложения остается прежним. Например, давайте предположим, что у вас есть две страницы / компонента в вашем угловом проекте, названные как вторая и третья.

<div class="nav">
  <p>Using "href"</p>
  <ul>
    <li><a href="/" >1</a></li>
    <li><a href="/second" (click)="onClick($event)">2</a></li>
    <li><a href="/third">3</a></li>
  </ul>
</div>
<hr>
<div class="nav">
  <p>Using "routerLink"</p>
  <ul>
    <li><a routerLink="/">1</a></li>
    <li><a routerLink="/second">2</a></li>
    <li><a routerLink="/third">3</a></li>
  </ul>
</div>
<hr>
<div class="page-content">
  <p>Page Content</p>
  <router-outlet></router-outlet>
  <hr>
  <p>Input Field</p>
  <app-input></app-input>
</div>

В приведенном вышеНапример, если вы наберете что-то в поле ввода и воспользуетесь навигацией href , то состояние этого будет иметь потери. Но когда вы используете навигацию routerlink для навигации, у вас будет этот вводимый текст.

Давайте посмотрим, что происходит за экраном: -

<li><a href="/second" (click)="onClick($event)">2</a></li>

onClick(event: Event) {
    event.preventDefault();
  }

, если вы запретите настройку по умолчаниюдействие href вы увидите, что страница не будет перезагружена, что происходит в routerlink , это просто означает, что routerlink также использовал href для навигации, но путем предотвращения его поведения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...