React--Facebook建立的JavaScript UI框架。它支撑着包括Instagram在内的大多数Facebook网站。React与当时流行的jQuery,Backbone.js和Angular 1等框架不一样,它的诞生改变了JavaScript的世界。其中最大的变化是React推广了Virtual DOM(虚拟DOM)并创造了新的语法——JSX,JSX容许开发者在JavaScript中书写HTML(译者注:即HTML in JavaScript)。css
Vue致力解决的问题与React一致,但却提供了另一套解决方案。Vue使用模板系统(弱化的jsx),使其对现有应用的升级更加容易。这是由于模板用的就是普通的HTML,经过Vue来整合现有的系统是比较容易的,不须要总体重构。同时Vue的学习曲线相对react来讲更加容易。html
React与Vue有不少类似之处,如他们都是JavaScript的UI框架,专一于创造前端的富应用。不一样于早期的JavaScript框架“功能齐全”,Reat与Vue只有框架的骨架,其余的功能如路由、状态管理等是框架分离的组件。前端
它们之间的最大区别是Vue一般使用HTML模板文件,而React则彻底是JavaScript。Vue有双向绑定语法糖。vue
在Vue组件中,有几个观念和React相差比较大,我以为主要有如下这几点:react
Vue组件分为全局注册和局部注册,在react中都是经过import相应组件,而后模版中引用;webpack
props是能够动态变化的,子组件也实时更新,在react中官方建议props要像纯函数那样,输入输出一致对应,并且不太建议经过props来更改视图;git
子组件通常要显示地调用props选项来声明它期待得到的数据。而在react中没必要需,另二者都有props校验机制;github
每一个Vue实例都实现了事件接口,方便父子组件通讯,小型项目中不须要引入状态管理机制,而react必需本身实现;web
使用插槽分发内容,使得能够混合父组件的内容与子组件本身的模板;vuex
多了指令系统,让模版能够实现更丰富的功能,而React只能使用JSX语法;
Vue增长的语法糖computed和watch,而在React中须要本身写一套逻辑来实现;
react的思路是all in js,经过js来生成html,因此设计了jsx,还有经过js来操做css,社区的styled-component、jss等;而 vue是把html,css,js组合到一块儿,用各自的处理方式,vue有单文件组件,能够把html、css、js写到一个文件中,html提供了模板引擎来处理。
react作的事情不多,不少都交给社区去作,vue不少东西都是内置的,写起来确实方便一些, 好比 redux的combineReducer就对应vuex的modules, 好比reselect就对应vuex的getter和vue组件的computed, vuex的mutation是直接改变的原始数据,而redux的reducer是返回一个全新的state,因此redux结合immutable来优化性能,vue不须要。
react是总体的思路的就是函数式,因此推崇纯组件,数据不可变,单向数据流,固然须要双向的地方也能够作到,好比结合redux-form,组件的横向拆分通常是经过高阶组件。而vue是数据可变的,双向绑定,声明式的写法,vue组件的横向拆分不少状况下用mixin。
从二者的github表现上来看
能够看出vue的star数量已是前端框架中最火爆的。从维护上来看,react是facebook在维护,而vue现阶段虽然也有了团队,但主要仍是尤雨溪在维护贡献代码,而且阿里巴巴开源的混合式框架weex也是基于vue的,因此咱们相信vue将来将会获得更多的人和团队维护。根据不彻底统计,包括饿了么、简书、高德、稀土掘金、苏宁易购、美团、天猫、荔枝FM、房多多、Laravel、htmlBurger等国内外知名大公司都在使用vue进行新项目的开发和旧项目的前端重构工做。
根据不彻底统计,包括饿了么、苏宁易购、美团、天猫、Laravel、htmlBurger等国内外知名大公司都在使用vue进行新项目的开发和旧项目的前端重构工做。
react有material-design,蚂蚁金服的ant-design等,vue有饿了么出品的element以及iview等。
Vue的优点包括:
React的优点包括:
而实际上,React和Vue都是很是优秀的框架,它们之间的类似之处多过不一样之处,而且它们大部分最棒的功能是相通的:
原文出处:https://www.cnblogs.com/kung0806/p/10500297.html