Angular组件和模块之间有什么区别

Lui*_*ena 146 components module angular

我一直在看视频和阅读文章,但这篇特别的文章让我如此困惑,在文章的开头说

Angular中的应用程序遵循模块化结构.Angular应用程序将包含许多模块,每个模块专用于单一用途.通常,模块是一个有凝聚力的代码组,它与其他模块集成以运行Angular应用程序.

模块从其代码中导出一些类,函数和值.Component是Angular的基本块,多个组件将构成您的应用程序.

模块可以是另一个模块的库.例如,作为主要Angular库模块的angular2/core库将由另一个组件导入.

他们是可以交换的条款吗?组件是模块吗?但不是反之?

Sef*_*efa 202

组件控件视图(html).他们还与其他组件和服务进行通信,为您的应用程序带来功能.

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


Saj*_*ran 127

好吧,发布答案为时已晚,但我觉得easy理解谁是初学者Angular.我在演讲中给出的一个例子.

考虑你的角度应用程序Building.建筑物中可以有N个N.一个Apartments被认为是Apartment.公寓的Module数量N可以与名为的Angular应用程序的构建块相对应rooms.

现在每个Components都会有Apartment (Module),Rooms (Components)以使更大的运动进出公寓,Lifts (Services)左右移动信息,并使其在公寓有用.

您还将拥有Wires (Pipes)所有建筑物居民共享的地方.因此,这些可以被视为SharedModule中的组件.

基本上,差异如下,

在此输入图像描述

按照我的幻灯片来了解Angular应用程序构建块

  • 管道的类比仍然是错误的(转换=改变)。我想说管道就像建筑物中的厨房,您可以在其中将原始成分(原始数据)变成您想要的不同种类的食物(煮熟的、胡椒粉的、油炸的、烘烤的等)。或者您可以说管道就像建筑物中的车间,您可以在其中使用不同的自动化机器根据需要轻松修改您的对象 - 将它们放入,然后进行修改:) (6认同)
  • 我经历了整个幻灯片.我觉得它做得很好!谢谢! (5认同)
  • 一个非常简单且很好的例子。但有一件事再次让我困惑,你说管道围绕数据移动(传输),这是正确的吗?据我所知,管道是用于转换数据的。 (2认同)

win*_*999 47

在此输入图像描述

最简单的说明:

模块就像一个大容器,包含一个或多个称为Component,Service,Pipe的小容器

一个组件包括:

  • HTML模板或HTML代码

  • 代码(打字稿)

  • 服务:它是由组件共享的可重用代码,因此不需要重写代码

  • 管道:它将数据作为输入并将其转换为所需的输出

.

  • 这个解释很棒! (3认同)
  • 一图说明一切! (3认同)
  • 不为所有这些疯狂。是的,您的组件将使用服务,但是必须在模块的providers数组中指示该服务。您的图表未显示此内容。 (2认同)

Sun*_*arg 37

角度分量

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

import { Component } from '@angular/core';
Run Code Online (Sandbox Code Playgroud)

并创建一个组件

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

要在此处创建组件或角度应用程序是本教程

角度模块

一个角模块被设置角度基本构建块等的部件,指令,服务等应用程序可以有多于一个的模块.

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

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)


Fra*_*ois 18

https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-L9vDDYxu6nH7FVBtFFS%2F-LBvB_WpCSzgVF0c4R9W%2F-LBvCVC22B-3Ls2.angulartmodule=s3_angokenaltmodule=%2F-L9vDDYxu6nH7FVBtFFS%2F-LBvB_WpCSzgVF0c4 624c03ca-e24f-457d-8aa7-591d159e573c

一张图片胜过千言万语 !

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

这个概念可以更好地构建代码并促进重用和共享。

注意不要将 Angular 模块与 ES2015 / TypeScript 模块混淆。

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

1-组组件(还有服务、指令、管道等......)

2-定义它们的依赖关系

3- 定义它们的可见性。

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


Jay*_*ini 11

Angular 2中的模块是由组件,指令,服务等组成的模块.一个或多个模块组合在一起构成一个Application.模块将应用程序分解为逻辑代码片段.每个模块执行单个任务.

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


Dak*_*ksh 7

组件是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以便您可以拥有可以独立运行的功能块。例如,应用程序可以具有功能模块,用于为应用程序的特定功能(例如仪表板)分组组件,您可以简单地在另一个应用程序中抓取和使用。