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

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.

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


当前回答

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

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

其他回答

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

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

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

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

角组件

组件是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代码 代码(打印稿) 服务:它是组件共享的可重用代码,以便 不需要重写代码 管道:它接受数据作为输入,并将其转换为所需的输出

参考: https://scrimba.com/

一幅图胜过千言万语!

Angular的概念非常简单。它提议用“砖块”——>模块“构建”一个应用程序。

这个概念使得更好地构造代码并促进重用和共享成为可能。

注意不要把Angular模块和ES2015 / TypeScript模块搞混了。

对于Angular模块,它是一种机制:

1-分组组件(还包括服务、指令、管道等)

2-定义它们的依赖关系

3-定义他们的可见性。

Angular模块是用一个类(通常为空)和NgModule装饰器简单定义的。