ng 命令解析之component,module

1.ng g component componentName  用于创建一个组件,可以在页面中担当特定可重复的功能组件,也可以挂载在路由上,充当页面展示,这里就不详细介绍使用方法了

2.ng g module moduleName 用于创建一个自定义模块,当项目过于庞大的时候就可以考虑使用module,把每个分支功能都做成一个module方便开发和管理,自定义的module可以对外暴露指定组件,也可以直接挂载在主路由上,实现路由懒加载

//此处创建一个user自定义模块,附带一个路由配置文件,方便直接挂载到主路由
ng g module module/user --routing
  •  此时app目录下会得到一个module文件夹,内容如下:

                       (你可以把这个当成一个简约版的新项目,这里可以创建component,service等)

 

  • 新增组件丰富user模块:userlist,userreset,userscore ,编辑user.module.ts,实现主动暴露内部模块,可以让主程序可以像一般组件一样直接使用
/user.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { UserRoutingModule } from './user-routing.module';
import { UserlistComponent } from './userlist/userlist.component';
import { UserresetComponent } from './userreset/userreset.component';
import { UserscoreComponent } from './userscore/userscore.component';


@NgModule({
  declarations: [UserlistComponent, UserresetComponent, UserscoreComponent],
  imports: [
    CommonModule,
    UserRoutingModule
  ],
  exports:[
    UserlistComponent, UserresetComponent, UserscoreComponent   //主动暴露
  ]
})
export class UserModule { }

 

/app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { RouterModule } from '@angular/router'; //引入模块

import { UserModule} from './module/user/user.module'
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule.withServerTransition({ appId: 'serverApp' }),
    AppRoutingModule,
    RouterModule,
    UserModule //注入模块
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
/app.component.html
<p>angular start</p>
<app-userreset></app-userreset>   //使用
<router-outlet></router-outlet>
  • 编辑user-routing.module.ts路由文件,直接挂载到主路由,实现路由懒加载
///user-routing.module.ts
///编辑模块内部路由
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { UserlistComponent } from './userlist/userlist.component';
import { UserresetComponent } from './userreset/userreset.component';
import { UserscoreComponent } from './userscore/userscore.component';
const routes: Routes = [
  {
    path:'',
    children:[
      {
        path: 'reset',
        component:UserresetComponent
      },
      {
        path: 'score',
        component:UserscoreComponent
      },
      {
        path: '',
        component:UserlistComponent
      }
    ]
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class UserRoutingModule { }
/app-routing.module.ts
 把user模块内部路由挂载在主路由的 /user 路由下面

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
  {
    path: 'user',
    loadChildren: ()=>import('./module/user/user-routing.module').then(m=>m.UserRoutingModule)
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

/访问/user ,/user/score ,/user/reset 可以查看实现效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值