时间:2021-05-18
当项目变得复杂庞大以后,如果所有页面都在一个模块里,就会出现首页加载慢的问题,因为首页就已经把整个项目加载进来了。所以,很有必要根据业务将不同的功能分模块,以便Angular2按需加载,提升用户体验。
下面的例子是将首页放到home模块里,访问/home时加载home模块内容,仅供学习懒加载,其实首页访问路径应该是/
先看项目文件结构:
home模块放到src/app/home目录下,里面的home目录是home组件。
home模块有单独的定义和路由(home.module.ts,home-routing.module.ts)
创建HOME模块和HOME组件:
cd src/app/mkdir homecd homeng g module homeng g component home创建HOME模块的路由配置模块
创建 home-routing.module.ts:
import {Routes, RouterModule} from "@angular/router";import {HomeComponent} from "./home/home.component";import {NgModule} from "@angular/core";const routes: Routes=[ { path:'', component:HomeComponent }]@NgModule({ imports:[RouterModule.forChild(routes)], exports:[RouterModule], providers:[]})export class HomeRoutingModule{}模块下的页面都可以单独在该模块自己的的路由配置模块上配置,而不用在app-routing.module.ts里配置,注意RouterModule.forChild(routes)
home.module.ts导入路由模块:
import { NgModule } from '@angular/core';import { CommonModule } from '@angular/common';import { HomeComponent } from './home/home.component';import {HomeRoutingModule} from "./home-routing.module";@NgModule({ imports: [ CommonModule, HomeRoutingModule ], declarations: [HomeComponent]})export class HomeModule { }在app-routing.module.ts配置路由:
import {NgModule} from "@angular/core";import {Routes, RouterModule} from "@angular/router";import {UserListComponent} from "./user/user-list/user-list.component";import {UserDetailComponent} from "./user/user-detail/user-detail.component";import {RxjsComponent} from "./rxjs/rxjs.component";import {UserEditComponent} from "./user/user-edit/user-edit.component";import {environment} from "../environments/environment";const routes: Routes = [ { 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模块
完成后打开chrome的开发者工具,切到Network,看看不同的页面是不是加载了不同的文件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.问题描述在没有使路由懒加载的时候,第一次使用的时候加载特别慢,影响用户体验,angular2可以使用loadChildren进行懒加载,第一次使用的时候只会
我们知道在angular2中ts文件支持js代码,为什么用document.getElementById没法获取元素节点呢?其实在angular2中先加载ts文
近期在学习使用Angular2做小项目,期间用到很多primeNG的模块。本系列将结合实战总结angular2-primeNG各个模块的使用经验。文件上传模块F
今天在项目中遇到一个很奇怪的问题,使用oclazyload懒加载angular的模块,刷新页面后,单击回退按钮无法返回上一个页面.估计是使用懒加载机制销毁了an
准备Angular2环境ng-bootstrap是基于Angular2的,因此需要先准备Angular2的环境。使用ng-bootstrap下载ng-boots