面试题答案
一键面试1. 懒加载配置步骤与关键语法
- 创建路由模块:
- 首先确保每个需要懒加载的功能模块都有自己独立的路由模块。例如,假设我们有一个
UserModule
用于用户相关功能,创建user - routing.module.ts
:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { UserComponent } from './user.component'; const routes: Routes = [ { path: '', component: UserComponent } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule] }) export class UserRoutingModule {}
- 这里
RouterModule.forChild(routes)
用于为子模块定义路由。
- 首先确保每个需要懒加载的功能模块都有自己独立的路由模块。例如,假设我们有一个
- 在主路由模块中配置懒加载:
- 在主路由模块(通常是
app - routing.module.ts
)中,使用loadChildren
语法来配置懒加载。例如:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; const routes: Routes = [ { path: 'users', loadChildren: () => import('./user/user - module').then(m => m.UserModule) } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule {}
loadChildren
属性的值是一个函数,该函数使用import()
动态导入模块。import()
返回一个Promise,then
方法用于解析导入的模块,这里解析出UserModule
。path
指定了触发懒加载的路由路径,当用户访问/users
路径时,UserModule
及其相关组件才会被加载。
- 在主路由模块(通常是
2. 优化应用加载性能原理
通过懒加载,Angular应用在初始加载时不会加载所有模块,只有当用户导航到特定路由时,对应的模块才会被加载。这样减少了初始加载的代码体积,加快了应用的启动速度,提升了用户体验。特别是对于大型单页应用,包含许多功能模块时,懒加载能显著优化性能。