ng2路由延时加载模块

发布时间:2019-06-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ng2路由延时加载模块脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、 app.module.ts

import {browserModule} From '@Angular/platform-browser';
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {HttpModule} from '@angular/http';
import {RouterModule, Routes} from "@angular/router";
import {Appcomponent} from './components/app.COMponent';
import {HomeComponent} from "./components/home.component";
import {ContactComponent} from "./components/contact.component";
// 这样就实现了延时加载
// 我们使用属性loadChildren而不是component 。
// 我们传递一个字符串而不是一个符号,以避免加载模块。
// 我们不仅定义了模块的路径,还定义了类的名称。
const MyRouter:Routes = [
  {
    path: "home",
    component: HomeComponent
  },
  {
    path: "about",
    loadChildren: "app/about.module#AboutModule"
  },
  {
    path: "contact",
    component: ContactComponent
  },
  {
    path: "**",
    redirectTo: "home"
  }
];

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    ContactComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(MyRouter)
  ],
  PRoviders: [],
  bootstrap: [AppComponent]
})
export class AppModule {
}

2、app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: '../templates/app.component.htML'
})
export class AppComponent {
  
}

3、app.component.html

<a [routerLink]="['home']" routerLinkActive="active">首页</a>
<a [routerLink]="['contact']" routerLinkActive="active">联系我们</a>
<a [routerLink]="['about']" routerLinkActive="active">关于我们</a>
<a [routerLink]="['about/list']" routerLinkActive="active">我们列表</a>
<router-outlet></router-outlet>

4、home.component.ts

import {Component} from "@angular/core";
@Component({
  selector: "my-home",
  template: "首页"
})
export class HomeComponent {
  constructor() {
    console.LOG("home");
  }
}

5、about.module.ts

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from "@angular/router";
import {AboutComponent} from "./components/about.component";
import {ListComponent} from "./components/list.component";

const childRouter:Routes = [
  {
    path: '',
    component: AboutComponent
  },
  {
    path: "list",
    component: ListComponent
  }
];
@NgModule({
  imports: [
    RouterModule.forChild(childRouter)
  ],
  declarations: [
    AboutComponent,
    ListComponent
  ]
})
export class AboutModule {

}

6、about.component.ts

import {Component, OnInit} from "@angular/core";
@Component({
  selector: "my-about",
  template: "关于我们"
})
export class AboutComponent {
  constructor() {
    console.log("about");
  }
}

7、list.component.ts

import {Component} from "@angular/core";
@Component({
  selector: "my-list",
  template: "列表"
})
export class ListComponent {
  constructor() {
    console.log("list");
  }
}

脚本宝典总结

以上是脚本宝典为你收集整理的ng2路由延时加载模块全部内容,希望文章能够帮你解决ng2路由延时加载模块所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。