### 1.angular-cli 经常使用命令记录javascript
详细教程 angular cli官网 有,这里不详细说明,感兴趣的能够自行到官网看,一下仅记录本人到学习过程经常使用到的命令
1.建立项目 ng newhtml
ng new project-name exp: ng new my-app
2.启动项目 ng servevue
参数名 | 类型 | 默认值 | 做用 | exp |
---|---|---|---|---|
--port | number | 4200 | 自定义端口 | ng serve --port 4201 |
3.建立modulejava
ng generate module module-name // 简写: ng g m moduleName // 新建带对应路由的module ng generate module my-module-name --routing // 简写 ng g m my-module --routing // 检查建立时检查module是否存在 ng g m my-module --spec
4.建立 componentreact
ng generate component component-name (options) // 简写 ng g c component-name // options exp // 在src/app 目录下生成component-name 组件 ng g c component-name --flat true
如下是components options说明
参数 | 类型 | 默认值 | 做用 |
---|---|---|---|
--flat | boolean | false | 在src/app目录下生成 component 文件,而不是在当前目录下 |
--inline-template | boolean | false | 使用 inline template 而不是独立的 html template 文件 |
--inline-style | boolean | false | 使用 inline style,而不是独立的style 文件 |
--spec | boolean | false | 是否生成component对应的 spec 单元测试ts文件 |
5.建立指令 ng directiveangularjs
ng generate directive my-directive (options) // 简写 ng g d my-directive // options exp // 在src/app 目录下生成 my-directive 指令 ng g d my-directive --flat true
ng directive 指令 options 参数 说明
参数 | 类型 | 默认值 | 做用 |
---|---|---|---|
--flat | boolean | false | 在src/app目录下生成 derective 文件,而不是在当前目录下 |
--spec | boolean | false | 是否生成directive对应的 spec 单元测试ts文件 |
6.建立serviceshell
ng generate service service-name (options) // 简写 ng g s service-name
ng service options 说明
参数 | 类型 | 默认值 | 做用 |
---|---|---|---|
--flat | boolean | false | 在src/app目录下生成 service 文件,而不是在当前目录下 |
--spec | boolean | false | 是否生成service对应的 spec 单元测试ts文件 |
7.构建 ng buildbootstrap
ng build // 设置 输出文件位置 为 myDist 文件夹 ng build --output-path myDist
此笔记不会从0到1讲解,仅作为记录本人学习angular2.x以上版本到学习笔记,若有问题能够提问,但愿我遇到到问题能够帮助到你到学习,若有一切不理解到问题,请移步到 angular官方文档 或 angular中文文档 查看更详细的说明
因为本人原先是使用vuejs和reactjs为主,因此有不少时候都是以vue做为对比例子理解,若有说得不清楚的,欢迎提bug。angular2
ng 架构 | |||
---|---|---|---|
模块 | 组件 | 服务与依赖注入 | 路由 |
2.模块
ng的模块,理解起来跟我之前理解的模块还真不同。ng模块须要经过NgModule去定义,并且ng的模块在个人理解概念上是一个相对独立的集合体,模块声明了当前模块使用到的相关组件、指令、管道、服务和一些编译配置。对比与vue的组件理解,ng模块显得略为有点麻烦,但也更为清楚的表达了模块和组件的关系,组件和模块不是一个意思。vue的模块,更多时候是vue工程已经帮开发者处理好了,不用本身去定义模块,只须要关注组件业务开发便可。固然,vue的组件也是须要注册到vue对象里面到,能够在全局注册,也能够注册到当前使用到组件,在组件注册这里,vue和ng都是同样须要手动注册。架构
import {NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; @NgModule({ imports: [BrowserModule], // 本模块须要注入的其余模块‘ /* * export * 本模块导出的组件、指令、管道,若是其余模块引入了本模块,在其余模块能够直接使用本模块输出的组件、指令和管道 */ exports: [], // providers本模块向全局服务中贡献的服务建立器,本人暂时也不知道是啥,后期研究明白了再单独写一篇补上吧 providers: [Logger], // bootstrap 指定了本模块启动时,应该启动的组件 bootstrap: [], // id 模块ID,用于使用getModuleFactory区分模块 id: 'myApp' }) export class AppModule {}
以上注解有部分借鉴于 石头皮的ANGULAR2_NGMODULE模块详解
3.组件
ng的组件,就是但存的组件,跟vue的组件是相似的东西。只不过ng的组件须要@Component装饰器定义一些组件配置,包括 selector, template/templateUrl, providers, styles/styleUrls等。而后组件保安有模版、指令、数据绑定、管道(filter)、事件/属性绑定、
4.服务与依赖注入
这个其实与angularjs差异不大,服务仍是能够用于组件之间的数据通信,注入让服务更灵活,须要时注入。
5.路由 定义导航的规则,而且把导航与组件或module关联起来。