一、概念
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
React是一个用于构建用户界面的开源JavaScript库,主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
二、vue和react的相同点都是用于创建ui的js库;
都比较轻便;
都是组件化思想,组件化开发;
都是虚拟dom,提高渲染速度;
都有独立的路由系统,以及独立的状态管理库;
都可以放进一个独立的html文件,或者依托于webpack模块;
三、Vue和React的区别
- vue 提供了一系列的api, 而react的api 很少
- vue的思想是响应式的,也就是基于是数据可变的,实现了数据的双向绑定,react整体是函数式的思想,是单向数据流,推崇结合immutable来实现数据不可变
- vue 采用了template, react采用了jsx (本质上都是模版)
- React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。
- Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。vue和react的优劣势
四、Vue的优点
-
简单:官方文档很清晰,比 React 简单易学。
-
快速:异步批处理方式更新 DOM。
-
组合:用解耦的、可复用的组件组合你的应用程序。
-
紧凑:~18kb min+gzip,且无依赖。
-
强大:表达式 & 无需声明依赖的可推导属性 (computed properties)。
-
对模块友好:可以通过 NPM、Bower 或 Duo 安装,不强迫你所有的代码都遵循 React 的各种规定,使用场景更加灵活。
五、Vue的缺点:
-
新生儿:Vue.js是一个新的项目,没有React那么成熟。
-
影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。
-
不支持IE8。
六、React的优点:
-
速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。
-
跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
-
模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方便地进行隔离。
-
单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
-
同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。
-
兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。
七、react的缺点:
陡峭的学习曲线:由于复杂的设置过程,属性,功能和结构,它需要深入的知识来构建应用程序。