Navigation is URL-based
Deep linking into lazily-loaded modules and synchronous link generation are possible only because the router's navigation is URL-based. Because the router does not have the notion of route names, it does not have to use any configuration to generate links. What we pass to routerLink
(for example,
['/contacts', id, 'detail', {full: true}]
) is just an array of URL segments. In other words, link generation is purely mechanical and application independent.
This is an important design decision we have made early on because we knew that lazy loading is a key use case for using the router.