Angular Routing พื้นฐาน: การสร้าง Route และ Navigation
#angular12 เม.ย. 2569
Angular Routing คืออะไร
Angular Router ช่วยให้เราสร้าง Single Page Application (SPA) ที่สามารถเปลี่ยนหน้าได้โดยไม่ต้อง reload browser
ติดตั้งและตั้งค่า Router
// app.routes.ts
import { Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
import { NotFoundComponent } from './not-found/not-found.component';
export const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: '**', component: NotFoundComponent }
];
// main.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { provideRouter } from '@angular/router';
import { AppComponent } from './app/app.component';
import { routes } from './app/app.routes';
bootstrapApplication(AppComponent, {
providers: [provideRouter(routes)]
});
RouterOutlet และ RouterLink
<!-- app.component.html -->
<nav>
<a routerLink="/">หน้าหลัก</a>
<a routerLink="/about">เกี่ยวกับ</a>
</nav>
<router-outlet></router-outlet>
Route Parameters
// routes
{ path: 'user/:id', component: UserComponent }
// component
import { ActivatedRoute } from '@angular/router';
export class UserComponent {
constructor(private route: ActivatedRoute) {
this.route.params.subscribe(params => {
console.log(params['id']);
});
}
}
Lazy Loading Routes
export const routes: Routes = [
{
path: 'admin',
loadComponent: () =>
import('./admin/admin.component').then(m => m.AdminComponent)
}
];
Navigation ด้วย Code
import { Router } from '@angular/router';
export class LoginComponent {
constructor(private router: Router) {}
onLogin() {
// หลัง login สำเร็จ
this.router.navigate(['/dashboard']);
}
}
สรุป
Angular Router เป็นส่วนสำคัญของทุก Angular application การเข้าใจ Route, Parameter, Lazy Loading และ Navigation จะช่วยให้สร้าง SPA ได้อย่างมีประสิทธิภาพครับ