你需要升级到 Angular 2 吗?

hubuke 8年前
   <p>在过去的一年中,Angular 2 团队一直都十分忙碌。事实上,在 <a href="/misc/goto?guid=4958866372165218034">Angular 2</a> 发布之前的两年,整个 Angular 社区都是极其忙碌的。第一个预发版本 (RC) <a href="/misc/goto?guid=4959677113094100871">已经在五月初发布了</a>,紧接着会有更多的 RC 陆续发布直至版本接近稳定。而 <a href="/misc/goto?guid=4959677113192056716">最新的版本 RC4</a>,将会在 6 月 30 日左右发布。</p>    <p>我们是否应该尽快升级到 Angular 2,还是说 Angular 1 将仍然能和其他引人瞩目的框架或者库如 <a href="/misc/goto?guid=4959677113280467401">React</a> 一起向前迈进?我们接下来聊聊这个话题。</p>    <p><strong>移动端优化</strong></p>    <p>让我们从 Angular 2 主页开始。你会留意到主页上有这么一句话:“<em>一个框架。移动端与桌面端。</em>”这清晰地证明了 Angular 2 将作为一个移动端优先的框架服务以支持移动应用的开发。</p>    <p>Angular 2 针对移动端优化了性能,提升了内存的效率以及节省了 CPU 周期。框架的最新版本支持在现代智能手机和平板设备上的更复杂的触控和手势事件。最近 <a href="/misc/goto?guid=4959677113373197602">Meteor 的基准研究</a> 表明 Angular 2 在面向数据库的测试中比 React,Blaze,以及最新版本的 Angular (v. 1.4.2) 都要更快。此外,Angular 2 还会支持原生的桌面应用,包括 Windows,Linux,以及 Mac。</p>    <p><strong>TypeScript 支持</strong></p>    <p>大快人心:Angular 2 将完全拥抱 Typescript。对于那些不熟悉者而言,TypeScript 基于你所认识的 JavaScript 但是结合了一系列额外的工具使你能够重构代码,用现代的 JS (ECMAScript 2015) 写代码,以及取决于浏览器的需求编译为之前的版本。另一个重要的方面在于 IDE 的整合,这使得你可以更容易地在大规模项目中重构你的整个代码库。在建的代码补全工具节约了你在查阅个别使用库的功能中的时间。如果你对于 Typescript 感兴趣的话,从它的 <a href="/misc/goto?guid=4959677113468361407">文档 </a>开始是个不错的选择。</p>    <p>Angular 2 的开发者能够享受到 TypeScript 的所有功能以及库,通过 TypeScript 的支持,整合例如 MongoDB 类似的数据库接口将变得简单起来。对于那些<a href="https://www.typescriptlang.org/docs/handbook/react-&-webpack.html">已经使用了 TypeScript</a> 的库例如 React 而言,开发者也可以无缝地在 Angular 2 项目中实现。</p>    <p><strong>模块化开发</strong></p>    <p>如何加载模块或是选择 Require.js 还是 WebPack 在 Angular 1 中一直是让大家头痛的事情。幸运的是,在新发布的 Angular 2 中这些选择被彻底移除,以规避低效的模块从而使性能提升。Angular 2 还集成了 <a href="/misc/goto?guid=4958870939760375721">System.js</a> —— 一个通用动态模块加载器,提供了加载 ES6,Common 和 AMD 模块的环境。</p>    <p><strong>$scope 走开, 组件过来</strong></p>    <p>Angular 2 彻底摆脱了控制器和 $scope。你可能想知道你要怎么把你的主页缝在一起!不用担心 —— Angular 2 使用了组件作为一种更简单的方式来构建复杂的 web 应用和页面。</p>    <p>Angular 2 使用的是指令(DOMs)和组件(模板)。简单地来说,你可以构建你个人的组件类型,作为在你的页面中独立的一个部分。指令在 Angular 1 中是至关重要的部分,为了把它在页面构建中的强大性拥入怀中,它也被带到了 Angular 2 里。而组件则是高度功能化和可定制化的指令,它可以用于构建和指定随同模板的类型,选择器和视图。</p>    <p>通过这些改变,Angular 2 将能够提供更好的功能以及让你更容易地从草稿开始建造你的 web 应用。Angular 2 组件使得我们可以写出不会干涉除了组件自身以外的代码块的代码。</p>    <p><strong>原生移动开发</strong></p>    <p>Angular 2 更面向框架。这意味着你为了移动设备所写的代码需要通过使用一个框架例如 <a href="/misc/goto?guid=4958821868446522552">Ionic</a> 或者 <a href="/misc/goto?guid=4958866610394523054">NativeScript</a> 来转换。</p>    <p>如果性能是你的主要考虑对象,这可能会引起矛盾,但是 Angular 2 实际上在代码结构的部分表现得更为出色。独立的代码库和技能组能够被用在构建大型代码构架上,以及通过框架(例如,你猜猜,Ionic 或者 NativeScript)的整合,伴随着你的原生应用运行的形式,你获取了大量更灵活的空间。</p>    <p><strong>代码语法的转变</strong></p>    <p>Angular 2 在语法使用中加入了更多的吸引人的特征。其中包括了(但不限于)改变路由工作的方式,通过属性输入改善了数据绑定,改变了指令语法的表现,以及最后,改善了本地变量被使用的方式。</p>    <p>这里有许多微小的改动。虽然微小,但却完全至关重要的。再次重申,我推荐直接阅读 Angular 2 的官方文档来获取更多细节以及给自己一个机会测试自己是否真的喜欢 Angular 2。</p>    <p><strong>最后的见解</strong></p>    <p>很多 web 开发社区已经从讨论 Anuglar 1 转移到只作为 <a href="/misc/goto?guid=4959677113747311002">单独的 Angular 2 社区</a> 而服务。显然现在开始使用 Angular 2 还不是太晚。现如今外界存在着大量优秀的框架。React 可能更擅长于处理性能方面的问题,但是 Angular 2 所专注的是开发过程的更深层面,尤其是构建大型代码库。此外,为 Angular 1 工作的团队同样也为 Angular 2 工作,这可能会带给我们额外的熟悉感。</p>    <p>在选择任何框架之前,最好列出与项目相关联的目标以及重要的因素的可靠列表。当需要作出选择时,你可能做的比使用 Angular 2 来开始你的新项目来的更糟糕。</p>    <p> </p>    <p> </p>    <p>来自:http://www.zcfy.cc/article/do-you-need-to-upgrade-to-angular-2-the-media-temple-blog-1045.html</p>