در این جلسه از آموزش Angular وارد مفاهیم پیشرفته‌تر Routing می‌شویم.
بعد از یادگیری routerLink و router-outlet، حالا نوبت این سه مفهوم مهم است:

  • Query Parameters
  • Child Routes (Nested Routes)
  • Lazy Loading Modules

این سه قابلیت در پروژه‌های واقعی Angular نقش بسیار مهمی در ساخت SPAهای حرفه‌ای دارند.


Query Parameters در Angular

Query Parameters داده‌هایی هستند که بعد از علامت ? در URL قرار می‌گیرند و برای فیلتر کردن یا انتقال اطلاعات استفاده می‌شوند.

مثال:

/products?category=mobile&page=2

نحوه گرفتن Query Params

import { ActivatedRoute } from '@angular/router';

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.queryParams.subscribe(params => {
    console.log(params['category']);
    console.log(params['page']);
  });
}

ارسال Query Params

<a [routerLink]="['/products']" [queryParams]="{ category: 'mobile', page: 2 }">
  Mobiles
</a>

Child Routes (Nested Routing)

Child Routes به ما اجازه می‌دهند مسیرهای تو در تو (Nested) بسازیم.
این قابلیت برای داشبوردها و پنل‌های مدیریتی بسیار کاربردی است.


مثال ساختار Route

const routes = [
  {
    path: 'dashboard',
    component: DashboardComponent,
    children: [
      { path: 'users', component: UsersComponent },
      { path: 'settings', component: SettingsComponent }
    ]
  }
];

نمایش Child Route

در کامپوننت والد باید از router-outlet استفاده کنیم:

<h2>Dashboard</h2>

<nav>
  <a routerLink="users">Users</a>
  <a routerLink="settings">Settings</a>
</nav>

<router-outlet></router-outlet>

کاربرد واقعی

  • پنل مدیریت
  • پروفایل کاربری
  • داشبوردهای چند بخشی

Lazy Loading در Angular

Lazy Loading یعنی لود کردن ماژول‌ها فقط زمانی که کاربر به آن صفحه وارد می‌شود.

این کار باعث افزایش شدید Performance می‌شود.


ساخت Lazy Module

const routes: Routes = [
  {
    path: 'admin',
    loadChildren: () =>
      import('./admin/admin.module').then(m => m.AdminModule)
  }
];

ساخت ماژول جداگانه

ng generate module admin --route admin --module app.module

مزایای Lazy Loading

  • کاهش حجم اولیه اپلیکیشن
  • افزایش سرعت لود اولیه
  • بهینه‌سازی SEO و UX
  • مناسب برای پروژه‌های بزرگ

جمع‌بندی

در این جلسه یاد گرفتیم:

  • ارسال و دریافت Query Parameters
  • ساخت ساختارهای حرفه‌ای با Child Routes
  • افزایش Performance با Lazy Loading

این سه مفهوم پایه طراحی SPAهای حرفه‌ای در Angular هستند و در پروژه‌های واقعی مثل پنل‌های مدیریتی و SaaS بسیار استفاده می‌شوند.

دسترسی به ویدیوهای کامل دوره

برای مشاهده ویدیوهای کامل هر جلسه، دریافت تمرین‌ها، فایل‌ها و پشتیبانی، می‌توانید دوره کامل را تهیه کنید.