当前位置: 首页 > news >正文

[Angular] 笔记 7:模块

Angular 中的模块(modules) 是代码在逻辑上的最大划分,它类似于C++, C# 中的名字空间

在这里插入图片描述
module 可分为如下几种不同的类型:

在这里插入图片描述

使用模块的第一个原因是要对代码进行逻辑上的划分,第二个非常重要的原因是为了实现懒惰加载(lazy loading),即不同的模块仅在使用时才加载。

生成模块相关指令举例:
在这里插入图片描述
VS Terminal 运行命令:

PS D:\Angular\my-app> ng generate module pokemon-base
CREATE src/app/pokemon-base/pokemon-base.module.ts (197 bytes)

这里模块名称pokemon-base后面没有再加一个 -module是因为Angular会自动加上一个 .module, pokemon-base-module.module 看起来会很奇怪,从 VS code 可看到新生成的文件夹 pokemon-base以及新文件 pokemon-base.module.ts

在这里插入图片描述

非常重要的一点,pokemon-base.module.ts 文件中要加上exports: [ ],

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';@NgModule({declarations: [],imports: [CommonModule],// importantexports: [],
})
export class PokemonBaseModule {}

VS Terminal 运行命令生成一个 UI 组件 pokemon-list:

PS D:\Angular\my-app> ng generate component pokemon-base/pokemon-list --module=pokemon-base/pokemon-base.module.ts
CREATE src/app/pokemon-base/pokemon-list/pokemon-list.component.html (27 bytes)
CREATE src/app/pokemon-base/pokemon-list/pokemon-list.component.spec.ts (635 bytes)
CREATE src/app/pokemon-base/pokemon-list/pokemon-list.component.ts (298 bytes)
CREATE src/app/pokemon-base/pokemon-list/pokemon-list.component.css (0 bytes)
UPDATE src/app/pokemon-base/pokemon-base.module.ts (308 bytes)

可以看到项目中新生成的组件文件夹以及文件:

在这里插入图片描述

同时修改 pokemon-base.module.ts 中的 exports: [ ],

@NgModule({declarations: [],imports: [CommonModule],// 增加 PokemonListComponentexports: [PokemonListComponent],
})
export class PokemonBaseModule {}

修改 app.module.ts 中的 imports

@NgModule({declarations: [AppComponent],// 增加 PokemonBaseModuleimports: [BrowserModule, AppRoutingModule, PokemonBaseModule],providers: [],bootstrap: [AppComponent],
})
export class AppModule {}

app.component.html 中增加新生成的组件:

在这里插入图片描述

运行 ng serve
在这里插入图片描述

相关文章:

  • 智能优化算法应用:基于广义正态分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化
  • 米贸搜|记录Facebook流量来源!解决数据抓取不全的问题!
  • 随机问卷调查数据的处理(uniapp)
  • Spark Shell的简单使用
  • 大语言模型说明书
  • ROBOGUIDE教程:FANUC机器人固定点焊焊接虚拟仿真
  • 将mapper.xml保存为idea的文件模板
  • Zama TFHE-rs
  • 详解Java反射机制reflect(一学就会,通俗易懂)
  • 帕累托森林CEO李朝政博士受邀「OSS-Compass」开源年会畅谈:开源框架下的奇异竞争规则
  • creo投影的使用-如何将一个实体的轮廓曲线单独画出来
  • 一篇讲透:箭头函数、普通函数有什么区别
  • 【C++】string
  • 解决log4j多个日志都写到一个文件
  • 2017届校招提前批面试回顾
  • Android单元测试 - 几个重要问题
  • Git初体验
  • Javascripit类型转换比较那点事儿,双等号(==)
  • jQuery(一)
  • js
  • js数组之filter
  • Koa2 之文件上传下载
  • MySQL数据库运维之数据恢复
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • TypeScript迭代器
  • 阿里研究院入选中国企业智库系统影响力榜
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 目录与文件属性:编写ls
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 使用putty远程连接linux
  • 数组大概知多少
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #ifdef 的技巧用法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四) Graphivz 颜色选择
  • (转)http-server应用
  • (转)创业家杂志:UCWEB天使第一步
  • .net(C#)中String.Format如何使用
  • .NET6实现破解Modbus poll点表配置文件
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net反混淆脱壳工具de4dot的使用
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net连接oracle数据库
  • .NET中winform传递参数至Url并获得返回值或文件
  • @TableLogic注解说明,以及对增删改查的影响
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [<死锁专题>]
  • [383] 赎金信 js
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Angularjs]asp.net mvc+angularjs+web api单页应用