这才是Angular2的灵魂!
原文出处:
http://www.imooc.com/article/13633
背景介绍:Angular1.x与Angular2 目前,Angular2 已经处于正式发布之前的最后准备阶段,按照既定的时间表,本月底(2016-09)Angular2 将会发布第一个正式版本。Angular2 依然保持了最初的核心设计理念,但是与 Angular 1.x 相比,在各种语法细节上发生了大幅度的修改。 详细的情况在后面的第三小节“ Angular2 有哪些重要变化?”中解释。从整体上看,Angular2 变得更加简洁,因为它的核心概念只有一个,那就是追求彻底的“组件化(Component)”。 每一门框架都有一个核心灵魂 当我们谈论 Hibernate 或者 Mybatis 的时候,你首先想到的一定是 ORM(实体关系映射),它解决了关系模型和 OO 模型之间的数据结构映射问题。 当我们谈论 jQuery 的时候,你想到的一定是 DOM 操作以及网络上无数的开源控件。很显然,DOM 操作就是 jQuery 的核心灵魂,它帮我们屏蔽了浏览器兼容性问题,并且提供了业务开发过程中所需要的各种UI控件。 当我们谈论 Angular 1.x 的时候,你想到了什么?呃,等一等,想到的东西有点多,有时候什么都想不起来。概念庞杂而无法把握,这就是 Angular 1.x 存在的最大问题。 每一个成功的框架都会有一个核心灵魂,这个核心灵魂必须能解决实际开发中的一个痛点。既然是核心灵魂,最好有且只有一个,否则就会给使用者带来很大的学习压力。在这一方面,Angular1.x 是一个反面教材。 因为它的特性比较多,其中最核心的4大特性分别是:
如果再加上一些琐碎的细节,如 $scope、脏值检测、依赖注入、路由、表单校验等等,整体上给人的感觉就是过于琐碎,没有一个核心灵魂能统摄一切。 Angular 团队也意识到了这一点,因此,Angular2 在设计之初就简化了整体的概念模型。Angular2 的核心灵魂只有一个,那就是组件化(Component),而其它那些细碎的东西,比如 Service、Route、Pipe,都是 utils 而已。因此,在使用 Angular2 的时候,开发者只要学会使用 Coponent 就解决了一大半问题。 大道至简,LESS is MORE。 Angular2 有哪些重要变化? 第一点:Angular2 删掉了 $scope 的概念 第二点:删掉了 ng-controller 指令 第三点:大幅度演进了脏值检测机制 第四点:嵌套路由 第五点:依赖注入机制演进 第六点:框架整体上基于 TypeScript 开发 还有一个重要的方面需要大家注意:TypeScript 是 Microsoft 开发的一门语言,Google+Microsoft 这样的组合会产生多么强大的推动力,大家可以想象。Google 和 Microsoft 本身都是重要的浏览器厂商,Chrome 和 IE 加起来的市场份额占据了一大半的市场份额,未来如果两款浏览器内建 TypeScript 引擎,很显然 TypeScript 和 Angular 的前景将会一片光明。这一优势是大量的同类技术框架根本无法企及的,因此大家在做技术选型的过程中需要综合考虑这些情况作出理性的决策。 第七点:Angular 1.x 和 Angular2 都自带 UI 控件库 针对 Angular 1.x 的 Material Design 实现请参考以下链接: 针对 Angular2 的 Material Design 库,目前已经处于 alpha 状态,预计在本月(2016-09)底发布第一个正式版本,更多详情请参考: 在现代 Web 应用开发中,尤其企业应用场景下,UI控件库是必不可少的组成部分。无论框架的设计理念多么前卫,我们最终都必须面对真实的业务开发,这里最大的现实就是:不可能让每一个企业或者团队都维护一套自己 UI 组件库。 我们知道开发一套能完美兼容各种屏幕的 UI 组件库需要消耗大量的时间和金钱,而长期维护这样一套体系更是无比枯燥的任务。所以说,Angular 默认提供免费的UI组件库这一点是目前市面上很多同类的技术所无法比拟的。 我从哪里开始学习 Angular2? Ok,Angular2 很强大,我很想上手实践一下,那么应该从哪里开始呢? 首先推荐 github 上的一系列新手项目,Angular 团队也编写了很多入门级的例子。在这些项目里面,由于运行环境的问题,有很多配置文件不太正确,导致很多开发者下载之后无法运行。我在原项目的基础之上整理并修改了一些配置错误,目的是降低国内开发者的学习成本,请参考以下链接:
总结 从本月开始,我们会定期在这里向大家作 Angular 的技术分享,每个月至少发布1篇详实的技术文章。 我作为谷歌“开发技术推广部”的 Angular 技术推广工程师,非常乐意和大家建立经常性的互动,也非常欢迎大家随时向我们提出对 Angular 的反馈和建议。大家有任何关于 Angular 的问题,可以直接在公众号下方留言,或者发送邮件至 DevRel-China-Contact@google.com,这是谷歌开发技术推广部专门收集中国开发者反馈的信箱。 原文发布在“谷歌开发者”微信公众号上,欢迎大家订阅。 本文原创发布于慕课网 ,转载请注明出处,谢谢合作! 作者: 大漠穷秋 链接:http://www.imooc.com/article/13633 来源:慕课网 本文原创发布于慕课网 ,转载请注明出处,谢谢合作! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |