Angular16 min read

Nested Routes and Layout Pages (Professional Routing)

Build dashboard layouts with child routes, shared sidebars, and clean navigation patterns.

Ethan Brooks
December 21, 2025
0.0k0

Most real applications have layout pages like: - dashboard with sidebar - admin area - settings pages You do not want to repeat the sidebar on every page. Nested routes solve this. ## Step 1: Create a layout component ```ts import { Component } from '@angular/core'; import { RouterOutlet, RouterLink } from '@angular/router'; @Component({ selector: 'app-dashboard-layout', standalone: true, imports: [RouterOutlet, RouterLink], template: ` <div class="layout"> <aside> <a routerLink="/dashboard">Home</a> <a routerLink="/dashboard/settings">Settings</a> </aside> <main> <router-outlet></router-outlet> </main> </div> `, }) export class DashboardLayoutComponent {} ``` ## Step 2: Add child routes ```ts export const routes = [ { path: 'dashboard', component: DashboardLayoutComponent, children: [ { path: '', loadComponent: () => import('./dash-home.component').then(m => m.DashHomeComponent) }, { path: 'settings', loadComponent: () => import('./dash-settings.component').then(m => m.DashSettingsComponent) }, ], }, ]; ``` ## How it renders ```mermaid flowchart TD A[/dashboard URL] --> B[DashboardLayoutComponent] B --> C[router-outlet inside layout] C --> D[DashHomeComponent] ``` > Next: Route resolvers to load data before page opens.

#Angular#Routing#Intermediate