1.angular

1.1. 概要:
angular是最先出现的架构,
angularjs是透过directive(命令)去PCB组件,react和vue是透过component。

1.2. 缺点:
1、另一面Sultanpur(google),有著平衡的保护工程项目组。且google的Adwords销售业务就采用了angular,做为两个挣钱的销售业务,google也会让它的自然环境更平衡许多。
2、angular+typescript,google和谷歌的排钱璧。angular全面性全力支持typescript句法,typescript不但包涵es6中的句法,也主要包括许多捷伊句法,
最重要的一点儿是它减少了类别准则,这让标识符的时效性和可移植性大大的提升,它也能让有java或.net大背景的开发者更慢的掌控。
3、完备。只不过相较react和vue而言,angular更能说是两个架构,而react和vue这类根本无法称得上两个库。angular便携式了基本上大部份网页应具备的机能,路由、配置文件、ajax、模板、单向统计数据存取之类。它原生植物的form配置文件组件十分强悍,除单向存取的基本机能,还便携式校正等,开发者不须要再去为的是那些机能找服务器端库,angular两个架构就包涵了那些的大部份,因此对优先选择十分困难症群体,这是两个缺点。
4、每一架构都有自己的cli钢架,能加速构筑工程项目雏型。angular-cli便携式多元化。
5、它的每两个组件都是两个文件夹,html、js、和css文件是分开的,让标识符更加清晰。
所以它的各类别文件单独存在,在开发中采用任何IDE都能检查标识符。能采用便携式的格式化机能,让开发过程中的标识符更整洁。
1.3. 缺点:
1、难调试,angular的标识符整洁、规范,很容易保护和审查,但是它的控制台报错信息太差了,大部分情况是无法看出问题到底在哪,这就在开发过程中给调试减少了很大的难度。而react和vue在开发中会更加明确的让开发者了解到错误出在哪里。
2、太重了,它便携式了很多组件,这解决了开发者在优先选择上耗费的时间,压缩后达到了168k,是vue50k的三倍还多,即使在4版本中,拆分了许多机能,但是它依然还是很重
3、学习成本,angular它有超多的概念,有许多单单透过文档还很难于理解,还有不友好的api文档。因为它的东西太多,所以api文档内容也很多,增大了阅读难度。这就导致了刚接触angular的人很难上手。也给心理上造成了很大的压力,那文档一看就不想看了,还有api,它是英文的。
2.React

2.1. 概要:
react这类不能算作两个架构,因为它这类的机能有限,不过它有两个庞大的自然生态系统,全世界无数开发者在为它提供开源包,
也许对开发者两个很难完成的问题已经有其他人员帮你完成了,只须要引入就好了。

2.2. 缺点:
1、后台(facebook)
2、轻量,体积小本来应该是算在react和vue的缺点中,但是在两个大型的工程项目中,就比如一般的react要用的是 react+redux+react-router或许还要加上发送请求的axios,如果有许多其他的需求还要再加包,vue也同样,vue+vuex+vue-router+vue-axios,这就导致react和vue体积小的缺点在逐步减小。所以这一方面我们应该说react和vue的 可组装性 是强于angular的,更加灵活,想用什么用什么。
3、react的单项统计数据流机制,这相较angular的单向统计数据流而言,因为单向,所以它的各种变化都是可预计的,不像单向统计数据流,一旦统计数据流复杂起来,大家都互相触发变化,开发者根本猜不出你改变两个地方会在另外什么地方跟着变。
4、react-native,两个优秀的移动端开发架构,采用react特有的jsx句法,能让开发者像写pc端网页那样去写移动端,它自动适配了不同的移动端的屏幕分辨率。jsx句法是将html融入到js中。
5、state,大部份的统计数据都储存在state中,根本无法采用setState方法去改变。开发者能把大部份的统计数据都存放在state中,让大部份组件都去这里边取统计数据,当然如果组件过多的话会让顶级
2.3. 缺点:
1、react的灵活性就导致了在选择上要耗费成本,确定采用架构的人要去考量这个工程项目有哪些机能,要用到哪些包还要去看哪些包的质量要高许多,因为相同的机能也会有很多开源人员贡献包。那些工作耗费的时间成本也是两个工程项目不得不考虑的问题。这一问题在vue上也同样存在
2、react的jsx句法,它学习起来并不是很难,应该是比ts要简单许多。但是它的写法是把html和js结合起来,这就导致在许多IDE上,你没法对它格式化,如果格式化的话,它会将html像js句法那种格式排列。标识符的时效性要差许多。所以在js中写html时就要避免两者出现相同的关键字,比如class,在jsx中就要写成className,还要是驼峰式写法
3、采用redux,redux在处理统计数据流的时候是采用saga句法,开发者要去学习saga的写法,然后saga的异步操作和同步操作是分开在两个函数中写,要在组件这类写一次,统计数据流到父组件时还要再写一遍,写法上要更复杂,如果想简化它,就要用两个后端应用架构-DVA,就还是透过加东西来减少开发效率。
4、virtual DOM,vue会跟踪每两个组件的依赖关系,不须要重新渲染整个组件树.而对React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会须要shouldComponentUpdate这个生命周期函数方法来进行控制
3.Vue

3.1. 概要:
vue的两个特点是每两个.vue文件都是两个组件,在这两个vue文件中主要包括style、scripts、template三个标签来包涵css、js和html。
它是最后两个出现的架构,所以在它的实现中,它取其他两个架构之长,去其他两个架构之短,借鉴了许多好的设计理念,
比如angular的命令、单向存取,react的component思想。

3.2. 缺点:
1、国产架构,所以它对国内开发者在学习它时要更友好。所以它的学习成本是三个架构中最低的。中文的api文档,我觉得单这一点儿,就让国内的开发者在学习vue时能够节省超多的精力。
2、vuex,完成了redux的机能且在写法上更加便捷,不再须要dva这种架构去帮他简便写法。
3、vue的体积是三个架构中最小的,加上它的处理机制,在非大型工程项目的对比中,它的性能是最高的。vue在非大型工程项目上,有了react和angular的缺点,且更简单,更易上手。
4、vue会跟踪每两个组件的依赖关系,不须要重新渲染整个组件树
5、vue实现了统计数据的单向存取,react统计数据流动是单向的
3.3. 缺点:
1、vue的响应系统无法检测属性的添加和删除,以及某些数组的修改,开发者有时会忽略这一点儿。
2、它毕竟发展的时间没有它们长,自然生态自然环境要更小,有时在开发中出现了问题,无法在网络上寻求到有效的帮助。
4.综合
4.1. 效率:
angular、react和vue都是mvvm模式,(model,view,view-model),angular的统计数据存取、操作dom就是透过viewmodel完成的。react和vue的view-model的高效率透过架构自身提供的virtual dom(虚拟dom)来实现,它是两个js对象,我们统计数据的变化会被映射到这个虚拟dom上,然后虚拟dom再去和真实的dom透过各架构自己的算法进行对比,来修改真实dom结构,这就要比angular的viewmodel直接存取真实dom树的操作要更有效率许多
4.2. 后台:
angular是google升级、保护。
react由facebook升级、保护。
vue是由中国人尤雨溪和他的工程项目组负责。
4.3. 个人观点:
angular的缺点更明显、它难以调试的缺点更会影响两个工程项目在开发过程中的进度。
vue较小的自然生态自然环境和少解决方案也让它在大型工程项目的开发中败给了react。
所以我觉得react更适用在两个成规模的工程项目中去采用。

架构或者库始终只是两个有助于开发的工具,无论采用哪个,都须要有扎实的js基础,没有哪个架构是脱离它的,我们能不采用架构,但是不能不用js,只要把它掌控好了,无论哪个架构都能够更加轻松的上手