ในเชิงมุม การโหลดแบบ Lazy Loading หมายถึงเทคนิคการโหลดโมดูลเมื่อจำเป็นเท่านั้น แทนที่จะโหลดโมดูลทั้งหมดเมื่อเริ่มต้นแอปพลิเคชัน

ซึ่งจะช่วยให้

  • ปรับปรุงประสิทธิภาพของแอปพลิเคชันโดยลดภาระเริ่มต้น
  • การลดจำนวนหน่วยความจำที่จำเป็นในการเรียกใช้แอปพลิเคชัน

การโหลดแบบ Lazy Loading สามารถทำได้โดยการใช้คุณสมบัติ loadChildren ในมัณฑนากร @NgModule เมื่อเราเตอร์นำทางไปยังเส้นทางที่มีคุณสมบัติ loadChildren Angular จะโหลดโมดูลที่ระบุตามความต้องการ แทนที่จะโหลดเมื่อเริ่มต้นแอปพลิเคชัน

ต่อไปนี้เป็นตัวอย่างของการโหลดโมดูลแบบ Lazy Load ใน @NgModule มัณฑนากร

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

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

ในตัวอย่างนี้ โมดูล dashboard จะถูกโหลดเมื่อผู้ใช้นำทางไปยังเส้นทาง /dashboard เท่านั้น ซึ่งช่วยให้แอปพลิเคชันเริ่มทำงานเร็วขึ้นและใช้หน่วยความจำน้อยลง เนื่องจากโมดูล dashboard ไม่ได้ถูกโหลดจนกว่าจะจำเป็น

เป็นที่น่าสังเกตว่าการโหลดแบบ Lazy Loading จะทำให้เกิดความล่าช้าในการนำทางครั้งแรกไปยังฟีเจอร์ Lazy Loading แต่จะช่วยปรับปรุงประสิทธิภาพโดยรวมของแอปพลิเคชันในระยะยาว

นอกจากนี้ ยังเป็นที่น่าสังเกตว่าคุณต้องกำหนดค่าการโหลดแบบ Lazy Loading ในไฟล์กำหนดค่า webpack หรือ angular-cli ของคุณ

เรียนรู้ต่อไป