OSC 第 127 期高手问答 -- Angular 2 新特性

局长 发布于 2016/09/18 15:13
阅读 6K+
收藏 16

OSCHINA 本期高手问答(9月18日- 9月26日) 我们请来了@asnowwolf(汪志成)为大家解答关于Angular 2的问题。

@asnowwolf(汪志成),儒家信徒,ThoughtWorker,Google 开发者专家(GDE)。Angular核心库的Contributor,《AngularJS深度剖析与最佳实践》的作者,https://angular.cn的译者,公众号“Angular中文社区”的维护者,并正在翻译《ng-book2》(预计年底完稿)。崇尚简单、专业、分享,好为人师。

经过两年半的紧张开发,Angular 2终于正式推出了!

作为一个革命性的版本,Angular 2具有很多优异的特性。它不但大幅度简化了Angular 1中的诸多概念,引入了更加现代化的设计理念,降低了学习曲线,而且在技术实现上也有了大幅提升。它提供了更加强大的依赖注入机制,提供了更加快捷高效的单元测试写法,它还分离了渲染引擎,使其不但性能有了本质的提升,而且可以实现离线编译、原生手机UI和服务端渲染(提升首屏加载速度,并支持SEO)等特性。

它不但是前端开发人员的利器,也是传统后端转型成全栈的阶梯。它采用了吸收了C#和Java优点的TypeScript语言,并采用了后端所熟悉的依赖注入技术。如果你精通RxJava等各种Rx库,那么这部分知识几乎可以完全复用。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就Angular 2方面问题向@asnowwolf 提问,请直接回帖提问。

加载中
0
IainZhuo
IainZhuo
@asnowwolf :您好,零基础的学习路线是什么?大概需要多久能学完?
IainZhuo
IainZhuo
回复 @asnowwolf : 谢谢解答,有点前端基础和java基础,只是之前没学过这类框架,所以有些疑惑。
asnowwolf
asnowwolf
如果其它前端MVVM框架的基础,也包括Silverlight、Adobe Flex等,那么学起来是其次的,主要是对ng 2中概念的理解(相对1已经少了很多)。 如果完全零基础,那么你的主要困难不在Angular 2方面,而在工具链和HTML/DOM、CSS等方面,这个没法速成。有人带的话最好。
asnowwolf
asnowwolf
完全零基础可能比较少。 如果有Angular 1的中级以上基础,那是最快的,估计一周内应该可以,我就是一边翻译官方文档一边做实验学到现在的程度的。 如果有Java、C#的基础,也会比较快,因为Angular中从它们借用了很多概念,特别是模板和依赖注入。但是Angular 1涉及到实现方面的很多坑,所以想精通不容易,而Angular 2中的坑就少了很多了,你把它当做后端框架来学都可以。
0
IT程序男
IT程序男
@asnowwolf :有js基础可以直接上手Angular2???本身做javaee开发的
asnowwolf
asnowwolf
@阿帕奇惮烦 NodeJS扮演的角色主要是工具链,其实如果是初级和中级的话,只要会用就够了,都不用写nodejs程序代码。
IT程序男
IT程序男
@asnowwolf 那些需要node.js基础?
asnowwolf
asnowwolf
回复 @阿帕奇惮烦 : 可以,不过要小心依赖注入、服务等概念可能会成为门槛。
IT程序男
IT程序男
@asnowwolf 有js基础可以直接上手angular不???
asnowwolf
asnowwolf
回复 @阿帕奇惮烦 : 你是指Angular 1吗?没必要,直接学2就可以了,顶多是补一下HTML(DOM)/CSS/NodeJS/前端工具链等方面的知识
下一页
0
p2ng
p2ng
@asnowwolf :作为一个Javaer非主攻前端,在使用angular1,也看过vue的api感觉vue非常轻量(常用前端路由,双向绑定,注入,)就不知道angular2门槛怎么样。
asnowwolf
asnowwolf
这么说吧:Angular 2的主要开发人员是Javaer出身。而且其中的依赖注入、单元测试等概念对后端开发人员来说应该比传统前端熟悉得多。还有@注解、强类型、接口等等,都是后端熟悉的领域。
0
机器猫123
机器猫123
Angular 2最吸引我的是提升了首屏加载速度,而且在SEO优化方面也有了很大的提高。我现在在从后端开发转型前端,在从angular2方面入手,是否可以给我一些建议。在使用angular2时,关于SEO的优化给我一些学习的建议。
asnowwolf
asnowwolf
后端开发转型前端,Angular 2可以说是最好的拐杖。它不但从后端借鉴了很多概念,而且其主要设计师也是Javaer。另外,Angular 2对分工提供了非常好的支持,可以让传统前端来负责HTML重构和CSS美化,你们来写“服务”等高度逻辑化的代码。
0
noday
noday
@asnowwolf :有对应的ui么
asnowwolf
asnowwolf
回复 @Raphael_goh : 是的,而且它和primeng重叠度并不高,primeng侧重于企业常用的datagrid等数据展示组件,而material2侧重消费者端的美观性组件多一点。
Raphael_goh
Raphael_goh
官方推荐是使用material2,不过目前还在beta https://github.com/angular/material2
asnowwolf
asnowwolf
https://angular.cn/resources/ 这里有官方列举的工具与库,另外,企业级组件库推荐使用primeng,参见我的评测: https://wx.angular.cn/library/resource/PrimeNg
0
全体人员
全体人员
其实我觉得官方的教程并不便于理解ng2。。。要是有更通俗易懂的就好了。
全体人员
全体人员
回复 @asnowwolf : great job~加油。
asnowwolf
asnowwolf
我们组织了一个Angular 2专家团,正在全力翻译一本 ng-book2 争取年底会由图灵出版。
0
玛雅牛
玛雅牛

@asnowwolf :ng2与reactjs以及新兴的vuejs相比有什么优势?

asnowwolf
asnowwolf
整合性:ALL-IN-ONE,决策成本低,应用从原型成长到大型、巨型时可以提供一个平滑的路径。 后端友好:和后端具有类似的编程模型,封装了前端知识的很多细节。 还有很多,参见:https://wx.angular.cn/library/article/%E6%88%91%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9Angular%202
0
wkh
wkh
angular2不擅长的领域是那些?
asnowwolf
asnowwolf
1. 性能要求非常高的地方:比如3D手游。 2. 大小要求非常严格的地方:比如总下载大小要控制在50K以内,现在Angular 2使用AoT编译的时候最小下载量是70k左右(不算Polyfills) 另外,如果是纯前端背景的团队,可能用起来会有困难,因为他们可能很难理解依赖注入、单元测试这些东西。最好是前后端合一的团队,甚至后端为主的团队。
0
skcool
skcool
@asnowwolf :请问angular2应该怎样优化首屏渲染时间,减少白屏时长
asnowwolf
asnowwolf
Angular Universal:https://github.com/angular/universal-starter 它会支持服务端渲染。 同时,即使不用服务端渲染,AoT编译技术也能减少白屏时间。 当然,你还可以用Angular 2配合React Native或NativeScript,这样就直接编译出原生程序了。
0
首席撸出血
首席撸出血
@asnowwolf :如果将angular2应用在微信上,有没有性能方面的影响啊?
asnowwolf
asnowwolf
回复 @首席撸出血 : 可以。Angular的创始人就是Flex Builder的作者。不过你学ng2的困难可能会在HTML/CSS/NodeJS工具链这方面,做好心理准备。
首席撸出血
首席撸出血
回复 @asnowwolf : 个人有flex基础,学ng2容易不
asnowwolf
asnowwolf
没有,目前在各个性能评测中,Angular 2是居于现有框架首位的,可能Vue 2出来会有提升,但应该不会有显著差异。而且Angular 2正在推进Web Worker这种黑魔法,届时第一名仍然会妥妥的。 参见这篇“黑”文:https://www.zhihu.com/question/50666914/answer/122145297?from=profile_answer_card
返回顶部
顶部