当项目变得复杂庞大以后,如果所有页面都在一个模块里,就会出现首页加载慢的问题,因为首页就已经把整个项目加载进来了。所以,很有必要根据业务将不同的功能分模块,以便Angular2按需加载,提升用户体验。
下面的例子是将首页放到home模块里,访问/home时加载home模块内容,仅供学习懒加载,其实首页访问路径应该是/
先看项目文件结构:
home模块放到src/app/home目录下,里面的home目录是home组件。
home模块有单独的定义和路由(home.module.ts,home-routing.module.ts)
创建HOME模块和HOME组件:
创建HOME模块的路由配置模块
创建 home-routing.module.ts:
{
path:'',component:HomeComponent
}
]
@NgModule({
imports:[RouterModule.forChild(routes)],exports:[RouterModule],providers:[]
})
export class HomeRoutingModule{}
模块下的页面都可以单独在该模块自己的的路由配置模块上配置,而不用在app-routing.module.ts里配置,注意RouterModule.forChild(routes)
home.module.ts导入路由模块:
imports: [
CommonModule,HomeRoutingModule
],declarations: [HomeComponent]
})
export class HomeModule { }
在app-routing.module.ts配置路由:
{
path:'home',loadChildren:'app/home/home.module#HomeModule'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes,{ useHash: environment.useHash })],exports: [RouterModule],providers: []
})
export class AppRoutingModule { }
配置home路径,使用loadChildren加载home模块