本人前端菜鸟一枚。目前熟练掌握的框架不多,用过Jquery,vue.js和MUI(并不精通)。
因为看到很多公司都要求熟悉angularJs,所以打算学习angularJs,但是angular2正式发布了。还有必要先学之前的老版本1.X吗?angular2 是不是需要ES6和typescript先学起来,学习难度会不会比较大?求大神指点
仅有的幸福2017-05-15 17:09:26
首先第一个问题,还有必要先学之前的老版本1.X吗?
我认为去学肯定是对自己有帮助的,但是必要性不是那么强吗,我建议这段时间可以学习一下angular1。
目前angular2正式版刚发布没多久,angular2在网上可以找到的资料并没有那么多,直接去学习angular2的内容遇见坑很难填的,所以在这之前学学angular1,理解一些angular的核心概念,例如模块依赖注入、双向绑定、指令、服务这些内容对自己的能力提升还是不小的。等把angular1有个初步的认识了,那会估计网上也有一些比较好的angular2教程了,再去学angular2可能效果会更好。另外目前ng2的项目真的少的可怜,网上要求熟悉angular的都是指angular1。
第二个问题,angular2的学习曲线肯定是有的,而且应该不低。
首先从目前来看,用Typescript写angular2才是正确的选择,毕竟文档和网上的资料都是以typescript为主,所以在着手angular开发之前最好可以掌握typescript,光这部分的学习任务其实也不小的.
另外angular2的概念可不是一点半点,目前就我自己来看,ng2相对一ng1增加了不少黑科技,什么摇树啊听着就头大,目前我学也只是根据官方文档学语法写Demo,不会用在生产的。。。
最后提一点,虽然上面说了一下学angular2比较难之类的话,但我认为不应该因为别人说难度大就放弃去接触了解它,我自己始终认为去接触有难度的东西自己才能有机会提高。希望对题主有帮助~
PHP中文网2017-05-15 17:09:26
声明:我研究的很浅。菜鸡一枚。玩儿 Angular1 只有一年的时间,Angular 2 也不到半年。强答一波。。
TS 不是只能写 Angular2,Angular2 也不是必须用 TS 写。你用 TS 写 Angular1,用 ES5 写 Angular2 也不会炸。。。=。=
我没有专门花时间去深究 TS,语言只是工具,会用就行((误。。。但是:
TS 本身就是 ES6 的超集,ES6 本身就是 JavaScript,加些新方法和新的写法,TS 最终也是编译成 JS 运行的。。个人觉得只要 JavaScript 基本功够好,学起来 TS 也没想象中的那么困难。TS 的特性,比如强类型,需要就用,不需要的话就当成 ES6 来写,也没什么大问题。
如果学过 Vue,应该会对学习 Angular2 有些帮助。思路上有些相通的,只是写法和生态圈换一换而已。
参考资料方面已经不少了。中文的虽然不多,好歹有官网。英文的多很多,书的话至少有《ng-book2》,《Switching to Angular2》,《Mastering Angular2 Components》,视频的话,Youtube 一堆,各大“在线教育”平台,比如 Udemy,Lynda,Egghead.io 也是一堆,足够你看的。
不是很建议为了理解双向绑定、指令、依赖注入而现在开始看 Angular1。个人觉得 Angular2 的更好理解,也简单不少,写法上 Angular2 与 Angular1 也稍有不同。就比如 Angular1 里面有 provider
, service
, factory
, constant
, decorator
和 value
, 刚开始学很容易懵逼。。至少这方面,Angular2 简化了不少。
项目和例子,网上也已经很多了。大小项目都有。。github 上面有一大把,还有一个网站叫 BuiltWithAngular2。。我的 github 上目前只有些很简单的例子,最近在写,希望能尽快完成更多。
说到公司需求。个人建议是,如果为了在三个月之内赶快找工作,那就去学1。。只要不是为了这个,学2吧。。写自己的项目,以及为了将来考虑,Angular2 可是会是更好的选择。
很多方面理解的还不到位,希望大神指正。
PHP中文网2017-05-15 17:09:26
如果没学习过angular1,建议不去学习,深入学习vue还是比较不错的。对于angular2的学习我也采取观望状态,近期才有的正式版,无疑相关的学习文档还不够健全,学习难度大,而且引入了TypeScript,虽说差别并不太大,但是对于前端菜鸟来说增加入门门槛。
所以建议深入学习Vue.js或者React(jsx让初学者也有点不适),对angular系列采取观望态度。