怎样在vue,angular,react快速选择一个合适的框架

目前vue,angular,react这三个前端框架很是流行,可是在不少场景下,咱们在选择技术路线的时候老是很纠结,不知道该选择哪种,这个问题的是本质是对框架的优劣认识不清晰。在这里不详细对比技术细节,由于技术细节差别不是咱们选择框架的首要因素。咱们该怎样选择一个框架,我以为应该从如下几个角度:前端

1.这个框架的使用场景。好比是否同时适用于Web端和原生App或者快速搭建一个小型项目等等。vue

2.团队当下的技术能力。学习新框架的时间成本,后期团队维护的成本。react

3.框架能解决哪些问题。优劣势是什么。web

4.框架的生态系统。是否有繁荣的生态系统供咱们学习使用。api

5.跨平台性。是否须要同时支持移动端和pc端前端框架

咱们从这几个角度去分析一下几个框架的优劣

先说一下这三个框架的共同之处,首先这三个框架都有很好的性能(这里的angular指的是2.0+),都支持数据绑定,组件等基本功能。weex

Angular

 

这是一个给开发者一整套解决方案的框架,相对于vue和react,angular不须要搭配其余库,就能够构建出一个大型项目,但它并不太适合开发小型应用。下面是angular的一些特色~angular2

1.这是一个完整的框架拥有良好的项目结构,一般状况下,咱们编写的js代码是没有正规的项目结构的,是由于在小型项目中对结构的要求很低,可是在大型项目中则彻底不一样,比,如webapp中ionic框架就是用的Angular做为内核我的以为也是看中了angular的这个特色。可是会丢失一些灵活性。app

2.拥有本身的构建工具,在Angular-CLI 使用打包编译,生成组件等都有相应的命令行,很是方便快捷,虽然vue和React也有构建工具,可是局限性很大,须要配合其余构建工具,我的以为Angular-CLI足够强大,这也是一套完整的框架的带来的红利,没必要在选择库上浪费时间。框架

3.体积较大。虽然在angular2+以后 使用了AOT和 tree-shaking,可是相对于其余轻量级框架来讲仍是略显臃肿。加载较慢

4.学习成本较高。须要不少基础概念和使用较复杂的api接口,入门相对困难。并且angular2.0+用的是ts语言,须要对ts语言有必定程度的了解。并且从angular1.x升级到2.x的时候框架几乎是重写了一遍,致使以前用angular1写的程序维护起来比较困难。若是是新入门学习angular,推荐从2开始学起。

5.跨平台优点。有ionic等使用angular做为内核的框架,若是是用angular开发pc端+移动端的跨平台开发,组件服务指令均可以复用,这对开发这来讲是很是不错的,react有React Native一样也是跨平台很是不错。vue有与阿里合做Weex,可是目前来讲跟前两个还有很大差距。

6.生态系统庞大。angular和react都有庞大的生态系统,vue相对较差

总结:它是一个成熟完善的框架,而React和Vue只是一个UI组件库。angular适用于大型项目,因此会有一些代价,好比学习成本高,若是你只是想用到组件,数据绑定等基础功能去开发一个小型应用,那么最好不要选择angular~

Vue

一句话说明Vue的特色,我的总结:灵活,构建项目可大可小,学习成本低,性能好,适合开发小型应用。这里不是说它不能构建大型应用,只不过我的以为你若是想开发一个尽量的小和快的应用,我建议你使用vue~

1.灵活性。它从不限制你用什么样的代码组织结构,更加随意。

2.实用性。它虽然很轻量,可是却拥有很强大的实用性,数据绑定,计算属性侦听器,组件等经常使用功能不次于angular。在不少方面比angular容易上手更

3.体积小。vue相对于angular体积小了不少。

4.学习成本较低。你只须要有良好的 HTML 和 JavaScript 基础就能够经过官网上的阅读指南快速投入开发,相比于react和angular都有很大的优点,angular须要学习各类各样的api,理解各类基础概念,还有学习ts语言才能进行开发;react须要知道 JSX 和 ES2015还须要学习构建系统等

5.跨平台优点较差。与其余两个框架相比,跨平台优点较差,虽然与阿里合做weex可是差距还很大。

总结:轻量,学习成本低等等,优势不少。缺点就是他的生态社区跟angular和react目前还差很远~

React

我的以为React和Vue有不少类似之处,1.两个框架都专一于视图层,其余功能如路由和全局状态管理交给相关的库,这跟angular有很大不一样 2. 都使用 "Virtual DOM" 3.提供了响应式和组件化的视图组件,React 的优点在于生态系统比较繁荣

1.灵活性。这点跟vue很像,React能够与已知的库或框架很好地配合。

2.生态圈强大。由于react把路由库和状态管理库交给社区维护,虽然相对来讲这些方面不如vue和angular的官方发布稳定,可是造就了生态圈的繁荣。

3.跨平台优点,React Native 能使你用相同的组件模型编写有本地渲染能力的 APP (iOS 和 Android)。能同时跨多平台开发,相似于ionic。

4.学习成本通常,,在你开始学 React 前,你须要知道 JSX 和 ES2015,相对于vue是学习难度高,相对于angular来讲比较好学,若是要构架大型应用,它的生态是相对复杂,我的以为没有angular官方发布的文档清晰。

总结:react和vue同样只关注视图层,只是一个UI组件库,这跟angular有本质的区别,若是react想开发大型应用须要配合第三方库,他的跨平台优点和生态优点大于vue。

假如你想快速开发一个简单学习成本低的小应用,能够考虑Vue~

假如你想开发一个大型应用,能够考虑angular~

假如你想开发一个跨平台应用,能够考虑react~

以上只是建议,在具体选择哪一个框架上,本文不能给出明确的答案,由于不一样框架的在不一样复杂的应用场景下优点是不一样的,可是我会给你精选出一些有价值的东西供你参考。