一、为什么使用Angularjs2
Angularjs2全面使用了模块化、组件化的思想,它有如下的特性:
1)模块化
- 在ng2的应用中,所有的系统功能都是模块化的,开发者只需要按需导入
- 模块化的好处在于可以当应用加载时,是按需加载的,大大提高了应用启动时候的性能
- 对于开发和维护非常方便,同时易于协作开发
2)使用了TypeScript
- TypeScript是JavaScript的超集,通过开发发现,JavaScript有语法错误并不会影响整个应用,所以有了TypeScript,TypeScript的代码会先编译成JS代码,只要有什么语法错误都能后在编译的过程中发现
- TypeScript具有面向对象语言的一些特性,例如接口,继承,包等,例如,在TypeScript中就直接使用implemes,interfaces这样的字段,非常方便
二、Angularjs架构
通过了解Angularjs2,我觉用一句话可以概括Angularjs2的核心概念:“用Angular扩展的语法来编写HTML模板,用组件来管理这些模版,用服务添加应用逻辑,用模块打包发布组件与服务,最后通过引导根模块来启动应用”
通过这个图我们可以看到,Angular框架的主要构造块有以下8个部分:
- 模块
- 组件
- 模板
- 元数据
- 数据绑定
- 服务
- 指令
- 依赖注入
与用户直接交互的就是模版视图,模版视图并不是独立的模块,它是组件的重要元素之一,另一个重要的重要元素就是组件类,,用以维护组件的的数据模型机功能逻辑,不同组件之间的切换通过路由模块来控制。指令与模板之间存在关联,主要的作用就是增强模板特性,间接扩展模版的语法。服务是封装某一功能呢逻辑单元,这个功能逻辑可以通过依赖注入的机制引入之组件内部,作为组件的功能扩展;
通过上述可以发现,Anaularjs应用始终都是围绕“组件”设计的,所以说应用是由一个个大大小小的松耦合的组件构成。
后续将对每一个构造块进行深入探讨~
三、Angularjs从框架到平台
可以说Angularjs2现在更像是一个平台而不是一个简单的类库了,目前在此基础上构建其他好用的工具:
框架核心包含:
- 依赖注入
- 装饰器支持
- zone.js
- 编译服务
- 变化检测
- 渲染引擎
外部工具库:
- Angular Material,Google官方的设计风格的UI组件库
工具:
- CLI为开发者提供了工作流自动化解决方案。功能涵盖了创建项目,生成组件,配置路由,启动开发服务器,构建测试,运行测试,预处理CSS,部署前的构建
- Augury用于调试,分析性能和可视化查看应用组件树,可以快速定位问题和调优