咱们都知道一个angular应用一般会有多个模块(Module)组成。而咱们又会在一个模块下写多个组件,让咱们了解一些模块与组件的基本构造吧。css
angular中的模块共有9个配置部分。其中最经常使用的有4部分为私有资源列表、公有资源列表、协做模块列表以及扩展功能列表。
如图所示,咱们以appModule为例逐一介绍一下。html
import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angular/core'; import {AppRoutingModule} from './app-routing.module'; import {AppComponent} from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AppRoutingModule, ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
咱们使用@NgModule声明其为一个模块,同时@NgModule里的内容为此模块的基本信息。bootstrap
其中咱们简单来理解一下providers和exports。若是咱们须要显示某组件而初始化某组件,咱们就使用imports,若是咱们须要使用其组件方法,咱们就使用providers提供。简单来讲,若是v层须要组件,咱们就使用imports提供,若是c层须要组件,咱们就使用providers提供,这里咱们没法直接提供组件,咱们经过提供某某controller间接提供组件。数组
同模块同样,组件经过@Component来声明为他是一个组件。sass
@Component({ selector: 'app-student-index', templateUrl: './student-index.component.html', styleUrls: \['./student-index.component.sass'\] })
1.selector:是一个 CSS 选择器,它会告诉 Angular,一旦在 HTML 中找到了这个选择器对应的标签,就建立并插入该组件的一个实例。
2.templateUrl:该组件的 HTML 模板文件相对于这个组件文件的地址。 另外,你还能够用template
属性的值来提供内联的 HTML 模板。
3.styleUrls:该组件的cass文件相对于这个文件的地址。你也能够用styles
属性的值来提供内联css。
若是咱们想在c层请其余组件帮忙,咱们在构造函数中声明app
constructor(private studentService: StudentService, private userService: UserService, private appComponent: AppComponent, private router: Router) { }
angular会帮咱们自动注入。
咱们将全部的service都放到一个文件夹里。可是咱们没有放到一个module,这是涉及到摇树优化的问题。具体再也不多说ide
组件:把重复的代码提取出来合并成为一个个组件,组件最重要的就是重用(复用)模块化
模块:分属同一功能/业务的代码进行隔离(分装)成独立的模块,能够独立运行,独立管理,每一个模块有不少接口,可供调用函数
组件化模块化优势:开发调试效率高、可维护性强、避免阻断、版本管理更容易组件化