The pushState API is a way out of using the pound sign/numbers symbol/hashtag in routes. You can basically put things in and out of a history of URLs and you may change a URL without a page refresh along those lines. This is helpful for both a SPA (Single-page Application) and/or a NWA (Native Web Application), sort of a halfway step between an MPA (Multi-page Application) and a SPA wherein there are a few modules broken up across a handful of pages for the walloffable, independent chunks of an app and the modules are all little SPAs. This is more wisdom from "ASP.NET Core 2 and Angular 5" by Valerio De Sanctis. This is in the first chapter.