При использовании Angular, роутинг осуществляется с помощью Angular Router, который предоставляет механизм для переключения между компонентами в приложении на основе изменения URL-адреса. При переключении между различными маршрутами, Angular Router обновляет только компоненты, связанные с соответствующим маршрутом, и не обновляет всю страницу.
Однако, по умолчанию при использовании Angular, при переключении между маршрутами происходит полная перезагрузка страницы. Это происходит потому, что Angular Router использует протокол HTTP для переключения маршрутов, а каждый HTTP запрос приводит к полной перезагрузке страницы. Это поведение аналогично тому, когда пользователь нажимает на ссылку и переходит на новую страницу.
Однако, вы можете изменить это поведение, используя так называемый "hash-based" роутинг. При этом вместо использования протокола HTTP для переключения маршрутов, Angular будет использовать символ "#", чтобы определить путь к компонентам без перезагрузки страницы.
Для включения "hash-based" роутинга, необходимо воспользоваться методом forRoot
в RouterModule
и передать объект { useHash: true }
в качестве параметра. Например:
imports: [ RouterModule.forRoot(routes, { useHash: true }) ]
После этого, маршрутизация будет происходить без полной перезагрузки страницы, и будет обновляться только соответствующий компонент. Это снижает нагрузку на сервер и улучшает производительность вашего приложения.
Однако, стоит заметить, что "hash-based" роутинг имеет свои ограничения и может вызывать проблемы с индексацией страниц поисковыми системами. Поэтому рекомендуется использовать "path-based" роутинг, если это возможно, и применять "hash-based" роутинг только в случаях, когда он действительно необходим.