Pages, routing and layouts
File conventions
provideRouter with withComponentInputBinding(), so route parameters and resolved data can reach component inputs.
index.page.ts | / |
about.page.ts | /about |
greet/[name].page.ts | /greet/:name |
(public)/help.page.ts | /help |
[...slug].page.ts |
Add a layout
/greet/world and stays active while navigating between its child pages.
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
imports: [RouterOutlet],
template: '<section aria-label="Greetings"><h2>Greetings</h2><router-outlet /></section>',
})
export default class GreetingLayout {}RouterOutlet to display its child page. You can nest more layout.ts files; layout.route.ts configures layout metadata.
Page metadata
greet/[name].route.ts exports Angular metadata. The path, component and hierarchy are generated: do not define them in metadata. Use title, resolve, providers, canActivate and runGuardsAndResolvers to configure route behavior.
RouterLink for internal navigation. Do not edit src/app/fastang.routes.ts: it is generated. npm run generate refreshes the manifest explicitly; the dev server detects added and removed route files.
Per-request state
useFactory: () => ({ count: 0 }). FastAng creates fresh route objects for every SSR application.