环顾四周的大型互联网公司,基本上都有自己的前端框架,比如阿里的Kissy和Arale,腾讯的JX,百度的Tangram,的QWrap等,为什么?因为要整合别的框架,并且在此基础上发展适合自己的组件库,代价非常大,初期没办法的时候只能凑合,长期来说,所有代码都可控的意义非常重要。
常见的前端产品形态包括:
内容型Web站点:侧重渲染方面的优化,前端逻辑比重小
操作型B/S系统:以数据和逻辑为中心,界面较规整
内嵌Web的本地应用:要处理缓存和一些本地接口,包括PC客户端和移动端
这三种产品的前端框架要处理的事情显然是不太一样的,所以可以细分成2-3种项目模板,整理出对应的种子项目,供同类产品初始化用。
选择前端框架应综合考虑框架本身与团队情况
选择框架要从两面看,一是看该框架的本领,二是看你们团队的能耐。
显然,我们第一步就是圈定时下最流行的框架与库作为评估对象,然后再根据自家公司的情况进行筛选。贵公司是建站公司,还是有自己产品的公司呢?如果是建站公司,页面不会复杂到哪里去,基本上jQuery+Bootstrap搞定,不要想得太多,就是它们。如果有自己产品,要维护一大堆客户数据,要与客户打交道,不难想象存在非常复杂的CRM系统,按照中国人的特性,这东西只会越来越复杂,这就要慎重考虑了。这往往是持续十年的维护升级,我们需要看一下某框架是否有你们的产品那么长寿,这框架的升级更新是否频繁平缓。
以下为目前常见的主流技术参考,根据github React对于数据逻辑方面需要操心的更少了,可以直接全量赋值。通过虚拟dom,进行dom局部更新这一点很吸引人,省去前端对数据逻辑的判断和操作。react目前我感觉优势在于native相关,未来大有可玩。单纯的web项目的话,学习成本相对vue来说还是很高的,react只是view还需要配合其他类flux的框架开发。最后,使用场景上来说:React配合严格的Flux架构,适合超大规模多人协作的复杂项目。
Angular允许你构建功能强大且易于理解和维护的机构化应用程序,angular是一个为动态web应用设计的结构化框架,提供给大家一种新的开发应用方式,这种方式可以让你扩展HTML的语法,以弥补在构建动态WEB应用时静态语言所体现的不足。Angular的结构化就是讲究责任分离,这样代码才好理解,维护和测试。
Vue体积小,接口灵活,侵入性好,可用于页面的一部分,而不是整个页面。扩展性好,源码规范简洁。更适合手机端的WEB开发,是声明式开发,性能高于angular,体积小很多。社区生态正在逐步完善,用的人相对较少,网上的资料也不多,出了问题的解决成本高。
决策目的
基于参考点及项目需求择优以上web端常用工具及架构框架,UI框架可根据兼容性、易用性、及熟练程度选择。
可选方案(主流web框架比较)
结论
vue相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。但是从另一方面来看它却显得毫无新意,甚至有点苍白无力。AngularJS非常结构化,大而全,虽然臃肿,但是成熟稳定。React在我看来并不是一个框架,而是一种设计思想。并且它的这种思想非常
空前,甚至可以移植到任何一个框架上,所以react和以上框架并无可比性,react所引领和激发的一系列开发思想,在React生态圈颇有些百家争鸣的感觉,各种新玩法层出不穷,所谓任重而道远,我认为对于react还是静观其变才好。
没有万能的框架,更没有万能的技术,最适合的才是最好的