zoukankan      html  css  js  c++  java
  • Angular惰性加载的特性模块

    一:Angular-CLI建立应用

    cmd命令:ng new lazy-app --routing    (创建一个名叫 lazy-app 的应用,而 --routing 标识生成了一个名叫 app-routing.module.ts 的文件)

                     cd lazy-app     (进入lazy-app项目)   

    二:创建一个带路由的特性模块

    cmd命令:ng generate module customers --routing    (创建一个 customers 目录,其中有两个文件:CustomersModule 和 CustomersRoutingModule)

          备注:如果出现  Error: Cannot find module '@angular-devkit/core',那就 npm install @angular-devkit/core

        :向特性模块添加组件

    cmd命令:ng generate component customers/customer-list    (在 customers 目录中创建一个名叫 customer-list 的文件夹,其中包含该组件的四个文件)

        :再添加一个特性模块

    cmd命令:ng generate module orders --routing

                     ng generate component orders/order-list

    三:建立UI

     app.component.html

    1 <h1>
    2   {{title}}
    3 </h1>
    4 
    5 <button routerLink="/customers">Customers</button>
    6 <button routerLink="/orders">Orders</button>
    7 <button routerLink="">Home</button>
    8 
    9 <router-outlet></router-outlet>

    四:配置路由                                                                                                                                                                                   

    4.1:顶级路由:app-routing.module.ts    (惰性加载的语法:loadChildren 后面紧跟着一个字符串,它指向模块路径,然后是一个 #,然后是该模块的类名)

     1 const routes: Routes = [
     2   {
     3     path: 'customers',
     4     loadChildren: 'app/customers/customers.module#CustomersModule'
     5   },
     6   {
     7     path: 'orders',
     8     loadChildren: 'app/orders/orders.module#OrdersModule'
     9   },
    10   {
    11     path: '',
    12     redirectTo: '',
    13     pathMatch: 'full'
    14   }
    15 ];

    4.2:配置特性模块的路由

    customers-routing.module.ts:

     1 import { NgModule } from '@angular/core';
     2 import { Routes, RouterModule } from '@angular/router';
     3 
     4 import { CustomerListComponent } from './customer-list/customer-list.component';
     5 
     6 
     7 const routes: Routes = [
     8   {
     9     path: '',
    10     component: CustomerListComponent
    11   }
    12 ];
    13 
    14 @NgModule({
    15   imports: [RouterModule.forChild(routes)],
    16   exports: [RouterModule]
    17 })
    18 export class CustomersRoutingModule { }

    orders-routing.module.ts:

     1 import { NgModule } from '@angular/core';
     2 import { Routes, RouterModule } from '@angular/router';
     3 
     4 import { OrderListComponent } from './order-list/order-list.component';
     5 
     6 const routes: Routes = [
     7   {
     8     path: '',
     9     component: OrderListComponent
    10   }
    11 ];
    12 
    13 @NgModule({
    14   imports: [RouterModule.forChild(routes)],
    15   exports: [RouterModule]
    16 })
    17 export class OrdersRoutingModule { }

    五:正常工作

    cmd命令:ng serve --open

    初始化后台:

    点击【Customers】后台

    点击【Orders】后台

    备注:forRoot() 包含的注入器配置是全局性的,比如对路由器的配置。forChild() 中没有注入器配置,只有像 RouterOutlet 和 RouterLink 这样的指令。

  • 相关阅读:
    Shell 传递参数
    Shell 变量
    Shell 教程01
    linux yum 命令
    Linux vi/vim
    Linux 磁盘管理
    你应该知道的基础 Git 命令
    Linux 下五个顶级的开源命令行 Shell
    Fedora 23如何安装LAMP服务器
    如何在Fedora或CentOS上使用Samba共享
  • 原文地址:https://www.cnblogs.com/zxg-6/p/9626780.html
Copyright © 2011-2022 走看看