与以前相比,前端的变化不可谓不大。从以前JSP,ASP流行的年代,到如今有了前后端分离的模式。前端不仅仅是写写交互页面,也有更复杂的工作模式。从我开始接触前端,就已经有了react、angular和vue的存在,jQuery作为曾经前端的瑞士军,已经没有了往日的光辉,至少它不再是唯一的选择了。
是啊,我也迷茫,三个框架我到底选那个,实习的时候开始接触angular1.x+ionic,开始看一些文档,但是学习的曲线稍微有一点陡,那个时候就已经有不少公司在用angular1.x做移动端项目了(配合着原生应用),管理系统使用angular1.x就更多,单页面应用,数据的双向绑定等种种都表明前端技术栈在快速的变化。(想到这里作为前端码农,心很忧伤)那时候感觉angular还是挺好用的,代码组织上比用JQuery强太多,也提高了效率。随后2016年9月14号谷歌放大招宣布了angular2.0的版本,关键的是升级版对1.x不友好,可以说是颠覆性的改变。(之后angular2.0以上的版本统称为angular)
目前使用angular2+已经有一段时间,说说我自己的使用历程。以下所说的angular就是指代angular2.0以上的版本。
1.angular单页面使用的是typescript语言开发,JavaScript 的强类型版本
2.angular应用包含一个或者多个模块组成,包括angular封装的核心模块、第三方库封装的模块和自己的编写的特性模块。
3.界面组件化式开发和业务组织编码
4,不管是开发自己的组件,或者是使用第三方的组件库,组件的复用都极大的提高了前端的开发效率和协作。开发的组件和具体项目业务分离,具体的业务可以由服务实现。当项目开发到了一定的稳定阶段,也可以根据需要开发自己的前端UI组件库。推荐几个比较好的angular组件库:NG-ZORRO(阿里)、material2(官方)、ngx-bootstrap等等。
5.angular-cli 内置了webpack模块化打包,并且因为angular是Google团队出品,在应对大型复杂的项目系统上,AoT预编译和摇树优化,都极大了优化了代码体积(这一点上vue2.x和angular有一定距离)
6.毕竟是一个前端的脚手架,所以使用了angular就相当于雇用了Google的工程师帮你编码,另一方面团队也需要成本去学习适应这个东西。
在实际的项目上开始使用时,团队只给了前端2个星期的学习,然后一路都是边做边学,最好的学习方式还是看官方的文档,文档是最全的学习资料。边做边学痛点就是组件的复用上做的很不好,大量的业务请求写在的组件中,导致组件的复用性不好。带来的便利就是前期的工作一旦做足了,后期的业务开发就会出现前端催着后端要接口的情况。最后不管是使用react还是angular,html+css+原生js很重要,很重要,很重要。自己也重新去加强这块了。