我想站在一个初涉现代前端工程的年轻人的角度来回答下这个问题.
其实早在2016年(大二升大三的暑假),我在公司实习时,就接触了AngularJS.当时经过2个月的实习,说实话,还是没懂AngularJS的精髓在哪,但是勉强能写点东西.具体没印象了,不过重点来了!!短短一年,17年再实习时,发现换了Angular2.我想,不就是个2.0,我用过AngularJS的,应该差不多吧.然后...你们可以脑补我拿到ng2的代码时的呐喊:这!都!是!啥!?
完全看不懂代码,也没什么人教(公司没ng大牛),就结合百度,边写边猜.当时我对前端的认知是这样的:
- 一个基本包含html,head,body的文档
- 在head里引入css和js文件
- 保存,浏览器刷新看效果
结果当时拿到手的ng项目是这样的
- 为什么我的页面没有头部?都是业务代码?
- 为什么我JS都不用引,他就能找到?(其实是TS,当时以为这俩是一样的)
- 为什么我都不用F5,他就自动刷新了?这就是人工智能吗?!
- 为什么代码上有import??这不是java的吗?
- 这个cmd(ng-cli)是啥!?这绿绿的还挺好看的.
- 网上提问,都告诉我说这是rxjs,这是啥?es6又是啥?
- 为什么代码要打包?不是写完直接打开就可以运行的吗?这代码这么邪乎?
还有很多很多问题..当时都是扑面而来,我的内心只有一句:卧槽!后来,慢慢的就记住了怎么写,会有怎样的效果,但是你要和我讨论,什么是组件化,什么是模块化,什么是可维护的架构,得了吧,都是玄学~!
后来,开学了,我就从公司离职了.但我总觉得,Angular这么难,我好不容易会用了(也就是知道一些API是怎么用的而已),我不能忘记了这么复杂的技术!然后我就自己做了个项目,重新理解一些概念.经过hin长hin长时间的研究,终于理解了,rxjs等一系列的黑科技.当有人问我Angular好在哪里时,我以前可能会这样回答:
写代码不用刷新?代码会自动提示?*ngFor比较方便?这些算好处吧.
可现在我能这样回答:
Angular使用了MS的TS语言,对类型和语法有了更强的制约,使得开发体验极好.异步加载模块,大大提升了用户体验.组件化开发,具有高可维护性的特点,更利于分配工作.自带ng-cli,将许多黑科技揉为一体,使得开发者更容易上手.
这就是我研究了这么长时间的成就——更加会吹B了.
言归正传,Angular真的是上手难度太高了,很多概念大家都不知道,人都是懒的嘛,我也不想学这么复杂的玩意.更不能要求每个人对于这种高难度的产品,都愿意去尝试,可如果你真的很想接触这种可吹b的框架,但是感觉很多资料都看不懂怎么办?没关系!可以参考下我的教程
Angular教程 - Eve (不定期更新)
用非常通俗易懂的语言来告诉你怎么上手Angular,不会扯很高级的语言,尽可能用普通人的交流方式.是的,我就是在打广告,不过我也是为了推广Angular嘛,这不都是为人民服务嘛!
|