我一直在看视频和阅读文章,但这篇文章让我很困惑,在文章的开头它说

The applications in Angular follow modular structure. The Angular apps will contain many modules, each dedicated to the single purpose. Typically module is a cohesive group of code which is integrated with the other modules to run your Angular apps. A module exports some classes, function and values from its code. The Component is a fundamental block of Angular and multiple components will make up your application. A module can be a library for another module. For instance, the angular2/core library which is a primary Angular library module will be imported by another component.

它们是可交换的条件吗?组件是模块吗?但反过来不是吗?


当前回答

角组件

组件是Angular应用的基本构建块之一。一个应用可以有多个组件。在一个正常的应用程序中,一个组件包含一个HTML视图页面类文件,一个类文件控制HTML页面的行为和CSS/scss文件样式你的HTML视图。组件可以使用@Component装饰器创建,它是@angular/core模块的一部分。

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

并创建一个组件

@Component({selector: 'greet', template: 'Hello {{name}}!'})
class Greet {
  name: string = 'World';
}

下面是创建组件或angular应用的教程

角模块

angular模块是一组angular的基本构建模块,比如组件、指令、服务等。一个应用程序可以有多个模块。

可以使用@NgModule装饰器创建模块。

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

其他回答

组件控制视图(html)。它们还与其他组件和服务通信,为应用程序带来功能。

模块由一个或多个组件组成。它们不控制任何html。你的模块声明了哪些组件可以被属于其他模块的组件使用,哪些类将被依赖注入器注入,哪些组件将被引导。模块允许你管理你的组件,为你的应用程序带来模块化。

最简单的解释:

模块就像一个大容器,包含一个或多个小容器,称为组件、服务、管道

组件包含:

HTML模板或HTML代码 代码(打印稿) 服务:它是组件共享的可重用代码,以便 不需要重写代码 管道:它接受数据作为输入,并将其转换为所需的输出

参考: https://scrimba.com/

Angular 2中的模块是由组件、指令、服务等组成的。一个或多个模块组合成一个应用程序。模块将应用程序分解成逻辑代码块。每个模块执行一个单独的任务。

Angular 2中的组件是你为想要显示的页面编写逻辑的类。组件控制视图(html)。组件与其他组件和服务通信。

现在发表答案已经太迟了,但我觉得我的解释对Angular初学者来说很容易理解。下面是我在演讲中举的一个例子。

把你的angular应用程序看作一个建筑。一栋建筑可以有N个公寓。公寓被认为是一个模块。一个Apartment可以有N个房间,这些房间对应于Angular应用的组件。

现在,每个公寓(模块)都将有房间(组件),电梯(服务),以便更大的进出公寓,电线(管道)转换,使其在公寓中有用。

你也会有游泳池,网球场,这些都是由所有居民共享的。所以这些可以被认为是SharedModule中的组件。

基本上,区别如下:

这是我为初学者准备的关于Angular构建模块的课程

跟随我的幻灯片来理解Angular应用的构建模块

组件是模板(视图)+一个包含视图逻辑的类(Typescript代码)+元数据(告诉angular从哪里获取需要显示模板的数据)。

模块基本上是将相关的组件和服务分组在一起,这样你就可以拥有可以独立运行的功能块。例如,一个应用程序可以有功能模块,为应用程序的特定功能分组组件,例如仪表板,你可以简单地抓取并在另一个应用程序中使用。