了解角度导入语句

时间:2018-10-05 14:22:21

标签: angular angular5

我是Angular和ES6编写代码模型的新手。我一直在阅读有关角度模块和导入语句的文章,并没有几个问题

我来自.NET背景,可以在组件,服务等中关联导入语句

例如

import { HttpClient } from '@angular/common/http';


  getIncidentData(): Observable<any> {
    return this._http.get('incidents.json');
  }
  • 我正在导入HttpClient模块并在我的代码中使用它的服务。或者,简单地,要使用其他类中定义的任何方法,我们需要首先将其导入。.因此它是可以理解的

  • 以及在NgModule装饰中的import语句中,我们也将它们导入。.因为有角度的模块(作为功能部件)定义了哪些组件,服务等可以使用的模块。 / p>

这是我的问题

  • 在模块级别,我们执行import语句,但实际上我们在那个位置没有使用任何方法或变量,而是仅在单个组件(服务)上使用它。为什么需要定义它在那边?
  • 如果我们在模块级别定义它,是否还需要在组件级别重复它。在下面的示例中,我在appModule中导入了HttpModule,是否需要在服务中导入它?组件,服务继承模块会自动导入吗?
  • 大多数外部模块的名称都以“ module”结尾,但是有些外部模块不知道我们是模块,组件还是服务?

这是一些示例

 import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { UitkModule } from '@uimf/uitk';
    import { TableModule } from '@uimf/uitk/components/tables';
    import { HttpModule } from '@angular/http';

    import { AppComponent } from './app.component';
    import { CardComponent } from './card/card.component';

1 个答案:

答案 0 :(得分:0)

回答您的问题

在模块级别,我们执行import语句,但实际上我们在那个位置没有使用它们的任何方法或变量,而是仅在单个组件(服务)上使用它。为什么需要定义它在那边?

  
      
  • 模块就像是多个组件的容器
  •   
  • 组件级别:仅需要导入所需组件(从导入的模块中)
  •   

如果我们在模块级别定义它,是否还需要在组件级别重复它。在下面的示例中,我在appModule中导入了HttpModule,是否需要在服务中导入它?组件,服务继承模块会自动导入吗?

  
      
  • 仅在代码中调用过
  •   
  • 突出显示,然后按Ctrl + Space->将自动导入模块。但是,有时自动导入会导入错误的路径。你需要   进行研究。
  •   

大多数外部模块的名称都以“模块”结尾,但是有些我们不知道它是模块,组件还是服务?

  
      
  • 元数据用于确定哪个。
  •   
  • 很多时候实施命名标准。就像在类名末尾添加服务。例如BaseService
  •   
  • @Injectable()->最有可能是一项服务
  •   
  • @NgModule ->模块
  •   
  • @Component ->组件
  •   

在此处查看教程:https://angular.io/tutorial