我一直在看视频和阅读文章,但这个specific article让我很困惑,在文章的开头它说
Angular 中的应用程序遵循模块化结构。 Angular 应用程序将包含许多模块,每个模块都专用于单一用途。通常,模块是一组有凝聚力的代码,它与其他模块集成以运行您的 Angular 应用程序。模块从其代码中导出一些类、函数和值。组件是 Angular 的一个基本块,多个组件将组成您的应用程序。一个模块可以是另一个模块的库。例如,作为主要 Angular 库模块的 angular2/core 库将由另一个组件导入。
它们是可交换的条款吗?组件是模块吗?但反过来不行吗?
组件控制视图 (html)。它们还与其他组件和服务通信,为您的应用程序带来功能。
模块由一个或多个组件组成。他们不控制任何 html。您的模块声明哪些组件可以被属于其他模块的组件使用,哪些类将由依赖注入器注入,哪些组件被引导。模块允许您管理您的组件,从而为您的应用程序带来模块化。
好吧,现在发布答案为时已晚,但我觉得我的解释对于 Angular 的初学者来说很容易理解。以下是我在演示过程中给出的示例之一。
将您的 Angular 应用程序视为建筑物。一栋建筑中可以有 N
间公寓。公寓被视为一个模块。然后,一个 Apartment 可以有 N
个房间,这些房间对应于名为 components 的 Angular 应用程序的构建块。
现在,每个公寓(模块)将有房间(组件)、电梯(服务)以实现更大的进出公寓、电线(管道)可以在公寓周围进行转换并使其在公寓中有用。
您还将拥有所有建筑物居民共享的游泳池、网球场等场所。所以这些可以被认为是 SharedModule 内部的组件。
基本上,区别如下,
https://i.stack.imgur.com/P1VMS.png
这是我在 Building Blocks of Angular for beginners
上的会议
按照我的幻灯片了解 building blocks of an Angular application
https://i.stack.imgur.com/Lsofi.png
最简单的解释:
模块就像一个大容器,包含一个或多个称为组件、服务、管道的小容器
一个组件包含:
HTML 模板或 HTML 代码
代码(打字稿)
服务:它是组件共享的可重用代码,因此不需要重写代码
管道:它将数据作为输入并将其转换为所需的输出
角组件
A component 是 Angular 应用的基本构建块之一。一个应用程序可以有多个组件。在一个普通的应用程序中,一个组件包含一个 HTML 视图页面类文件、一个控制 HTML 页面行为的类文件和用于设置 HTML 视图样式的 CSS/scss 文件。可以使用 @angular/core
模块中的 @Component
装饰器创建组件。
import { Component } from '@angular/core';
并创建一个组件
@Component({selector: 'greet', template: 'Hello {{name}}!'})
class Greet {
name: string = 'World';
}
要在此处创建组件或 Angular 应用程序,请使用 tutorial
角模块
angular module 是一组有角度的基本构建块,例如 component、directives、services 等。一个应用可以有多个模块。
可以使用 @NgModule
装饰器创建模块。
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
https://i.stack.imgur.com/Pxy8s.jpg
一张图片胜过千言万语 !
Angular 的概念非常简单。它建议用“砖块”-> 模块“构建”一个应用程序。
这个概念使得更好地构建代码并促进重用和共享成为可能。
注意不要将 Angular 模块与 ES2015 / TypeScript 模块混淆。
关于 Angular 模块,它是一种机制:
1-组组件(还有服务、指令、管道等......)
2-定义它们的依赖关系
3-定义他们的可见性。
Angular 模块简单地用一个类(通常是空的)和 NgModule 装饰器来定义。
Angular 2 中的模块是由组件、指令、服务等组成的。一个或多个模块组合成一个应用程序。模块将应用程序分解为逻辑代码段。每个模块执行一个任务。
Angular 2 中的组件是您为要显示的页面编写逻辑的类。组件控制视图 (html)。组件与其他组件和服务进行通信。
组件是 the template(view) + a class (Typescript code) containing some logic for the view + metadata(to tell angular about from where to get data it needs to display the template)
。
模块 basically group the related components, services together
,以便您可以拥有可以独立运行的功能块。例如,应用程序可以具有功能模块,用于对应用程序特定功能的组件进行分组,例如仪表板,您可以简单地在另一个应用程序中抓取和使用它。