mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
5163e3d876
The `UrlTree` is a fundamental concept in the router's API design. Generally speaking, a `UrlTree` would be constructed via things like `Router.createUrlTree` or `UrlSerializer#parse`. The second example here is the core reason to make the constructor public, regardless of how develpers generally create a `UrlTree` in an application. Applications can provide their own `UrlSerializer` and may want to implement their own `parse` method. This means they would also need to create a `UrlTree` but would not be able to do so effectively because the constructor is marked `@internal`. In addition, the `UrlTree` constructor only has 3 parameters, all of which are already public. There's nothing "special" about it other than the potential desire to push developers to use other methods for constructing a `UrlTree` (i.e. `Router.createUrlTree`). Also see http://b/234604699#comment9 for additional context. PR Close #47186
Angular Router
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand.
Guide
Read the dev guide here.