{@a router-tutorial}
# Router tutorial: tour of heroes
This tutorial provides an extensive overview of the Angular router.
In this tutorial, you will build upon a basic router configuration to explore features such as child routes, route parameters, lazy load NgModules, guard routes, and preloading data to improve the user experience.
For a working example of the final version of the app, see the 
| Member | Description | 
|---|---|
      has(name)
     | 
    Returns `true` if the parameter name is in the map of parameters. | 
      get(name)
     | 
    Returns the parameter name value (a `string`) if present, or `null` if the parameter name is not in the map. Returns the _first_ element if the parameter value is actually an array of values. | 
      getAll(name)
     | 
    Returns a `string array` of the parameter name value if found, or an empty `array` if the parameter name value is not in the map. Use `getAll` when a single parameter could have multiple values. | 
      keys
     | 
    Returns a `string array` of all parameter names in the map. |