1
AppModule: 根模块 (大型应用还会有很多特性模块->专注某一块应用)根模块并不需要export
-- 每个模块都带有一个@NgModule装饰器的类
-- declarations - 声明组件
-- exports - 可用于其他模块的组件模板
-- imports - 声明模块
-- providers - 服务创建者,加入全局服务列表中
-- bootstrap - 指定根组件,只有根模块才能设置bootstrap属性
you always use main.ts to lead AppModule for run
(js模块和ng模块完全不同且无关,只有加入了imports属性中,模块才可使用)
( imports: [ BrowserModule ],这种情况下同时使用了ng和js的模块系统 )
2
组件负责控制屏幕上的一小块区域,称之为视图。组件是一个特殊的指令
-- 为数据绑定提供属性和方法,其他琐事委托给服务
-- 在类中定义的组件逻辑,为视图提供支持。
-- 组件的模板( @Component({ providers: [] }) 注入元数据,对应@Injectable )
-- { selector, templateUrl, stylesUrl, providers }
-- 父子通信 [hero]="selectedHero"
-- 属性绑定 [(ngModel)] = "hero.name" ( 响应change事件 )
-- 事件 ( click )="selectHero(hero)
Service:主要用于获取数据、验证输入、写日志等 (最大消费者-组件)
依赖注入:提供类的新实例并处理类所需的全部依赖,ng通过依赖注入来提供组件所需的服务
-- ng通过组件构造函数的参数类型得知组件需要哪些服务
-- 注入器用于存放它创建过的服务实例,providers创建一个新的服务实例
总结:模块,组件,模板,元数据,数据绑定,指令,服务,依赖注入