Vue与React两个框架的区别

数据绑定

Vue中数据绑定

  • vue是双向绑定, Vue.js 最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。所谓双向绑定,指的是vue实例中的data与其渲染的DOM元素的内容保持一致,无论谁被改变,另一方会相应的更新为相同的数据

react没有数据双向绑定

  • react是单向数据流
  • react中通过将state(Model层)与View层数据进行双向绑定达数据的实时更新变化,具体来说就是在View层直接写JS代码Model层中的数据拿过来渲染,一旦像表单操作、触发事件、ajax请求等触发数据变化,则进行双同步

监听数据变化的实现原理不同

  • Vue 通过 getter/setter 以及一些函数的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能
  • React 默认是通过比较引用的方式进行的,如果不优化(PureComponent/shouldComponentUpdate)可能导致大量不必要的VDOM的重新渲染

为什么 React 不精确监听数据变化呢?这是因为 Vue 和 React 设计理念上的区别,Vue 使用的是可变数据,而React更强调数据的不可变。所以应该说没有好坏之分,Vue更加简单,而React构建大型应用的时候更加鲁棒。因为一般都会用一个数据层的框架比如 Vuex 和 Redux,所以这部分不作过多解释了.

数据流的不同

数据流
大家都知道Vue中默认是支持双向绑定的。

  • Vue1.0中我们可以实现两种双向绑定:
    父子组件之间,props 可以双向绑定。
    组件与DOM之间可以通过 v-model 双向绑定。
  • Vue2.x 中去掉了第一种,也就是父子组件之间不能双向绑定了(但是提供了一个语法糖自动帮你通过事件的方式修改),并且 Vue2.x 已经不鼓励组件对自己的 props 进行任何修改了。
    所以现在我们只有 组件 <–> DOM 之间的双向绑定这一种。
  • React 从诞生之初就不支持双向绑定,React一直提倡的是单向数据流,他称之为 onChange/setState()模式。
    不过由于我们一般都会用 Vuex 以及 Redux 等单向数据流的状态管理框架,因此很多时候我们感受不到这一点的区别了

渲染性能对比

在操作界面时,要尽量减少对DOM的操作,Vue 和 React 都使用虚拟DOM来实现,并且两者工作一样好。
尽量减少除DOM操作以外的其他操作。(vue和react的不同)

React.js的优点:

  • 灵活性和响应性:它提供最大的灵活性和响应能力。
  • 虚拟DOM:由于它基于文档对象模型,因此它允许浏览器友好地以HTML,XHTML或XML格式排列文档。
  • 丰富的JavaScript库:来自世界各地的贡献者正在努力添加更多功能。
  • 可扩展性:由于其灵活的结构和可扩展性,React已被证明对大型应用程序更好。
  • 不断发展: React得到了Facebook专业开发人员的支持,他们不断寻找改进方法。
  • Web或移动平台: React提供ReactNative平台,可通过相同的React组件模型为iOS和Android开发本机呈现的应用程序。无论是Web还是本机移动开发,React都是大多数用户界面设计平台的理想选择。

小结

总结一下,我们发现,

  • Vue的优势包括:
  • 模板和渲染函数的弹性选择
  • 简单的语法及项目创建
  • 更快的渲染速度和更小的体积
  • React的优势包括:
  • 更适用于大型应用和更好的可测试性
  • 同时适用于Web端和原生App
  • 更大的生态圈带来的更多支持和工具
  • 而实际上,React和Vue都是非常优秀的框架,它们之间的相似之处多过不同之处,并且它们大部分最棒的功能是相通的:
  • 利用虚拟DOM实现快速渲染
  • 轻量级
  • 响应式和组件化
  • 服务器端渲染
  • 易于集成路由工具,打包工具以及状态管理工具
  • 优秀的支持和社区
    ————————————————

文章参考来源:


   转载规则


《Vue与React两个框架的区别》 echo丶若梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
js基础 js基础
document.load和document.ready的区别页面加载完成有两种事件 load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行一个函数问题:如果图片资源较多,加载时间较长,onloa
2019-10-25
下一篇 
从输入url到页面展示到底发生了什么 从输入url到页面展示到底发生了什么
前言刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料。而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步追问下去的,很多细节就不太清楚了。最
2019-10-23
  目录