现在前端三大框架Angular、React、Vue各有所长。Angular从一开始就带有很明显的工程化血统,齐全的cli命令,背靠TypeScript,涉及模块、服务以及指令等概念,使用后端的依赖注入思想,特有模板语法。React和Vue就"轻"很多,React甚至只是一个UI库,他们共同的一个思想就是,做到最好。
Angular、React、Vue三选一,前端工程师更青睐使用哪款框架?
在大型超大型web应用开发上,看好Angular
深 度整合Typescript和Rxjs。ts解决了工程化的问题,rxjs解决了开发速度的问题。但是学习成本,可能对于Java,c#等OOP工程师来说比较容易上手,但是对于JavaScript工程师来说,少有工程化的经验,接受起来比较痛苦。当然,不只是Angular可以采用Typescript开发,很多其他的Dom库都可以,Angular相比他们的优势在于:
零配置
深度整合设计模式
约定才是框架的本质
尤其是第三条,相信很多天才程序员都能复现Angular的设计模式和功能,但是由于并非“框架”,没有其他程序员跟进,显然就不能适用于大型超大型应用,毕竟对于大项目来说,沟通往往会成为开发瓶颈。
rxjs很多人认为太重,没有必要,当然你也可以用很不优雅的toPromise方法来处理异步操作,甚至直接用behaviorObject.value也可以,但是当异步操作繁杂,重复,非一致的时候,rxjs可以很优雅地保证数据的稳定。rxjs的运用一方面是为了处理这种复杂的异步逻辑,另一方面,就是为了让异步数据流可以声明,而不用像promise那样声明冗长,或者async await那样函数化,响应式是基于数据的响应式而不是基于函数。
小型应用上,看好vue
其实绝大部分web应用,都应该只是小型应用。公司官网,论坛,甚至是规模不大的电子商务网站和基本功能的OA,ERP系统,都只是小型web应用。它们数据源稳定,对于运营的要求不高,但是对加载速度等都有很高的要求。这个时候,小巧的vue就成了首选。Proxy实现的响应式相比Angular的zone暴力代理和rxjs的复杂操作显得更加接地气,不需要额外地进行学习。对象式的声明在UI实现上速度更快。生态虽然没有react那么热闹但是小而美的库也很多,nuxt的实现值得点赞。
个性化需求、中型应用,更倾向react
在中大型应用中,不是一定要搞Java那一套的,而且在前端这种对工期要求很紧的领域,没必要因为添加新功能而更换新的平台,能用到rxjs和依赖注入的前端应用场景并不多。所以如果采用react,从项目一开始就渐进式地添加模块,往往更适合快速发展的产品。