vue和react区别

简单介绍

  除非你最近一直不关注前端的发展,不然你肯定听说过由Facebook创建的JavaScript UI框架——React。它支撑着包括Instagram在内的大多数Facebook网站。React与当时流行的jQuery,Backbone.js和Angular 1等框架不同,它的诞生改变了JavaScript的世界。其中最大的变化是React推广了Virtual DOM(我们稍后探究)并创造了新的语法——JSX,JSX允许开发者在JavaScript中书写HTML(译者注:即HTML in JavaScript)。WAT?

  Vue致力解决的问题与React一致,但却提供了另外一套解决方案。Vue使用模板系统而不是JSX,使其对现有应用的升级更加容易。这是因为模板用的就是普通的HTML,通过Vue来整合现有的系统是比较容易的,不需要整体重构。同时Vue声称它更容易学习,我最近才接触Vue,能证明所言非虚。关于Vue还需要说的是,Vue主要是由一位开发者进行维护的,而不像React一样由如Facebook这类大公司维护。

相似之处

1. 虚拟DOM (Virtual DOM)

2. 都提供了响应式和组件化的视图组件。

3,都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关库。

不同点:

1,React中,当某组件的状态发生改变时,它会以该组件为根,重新渲染整个组件子树,而在Vue中,组件的依赖是在渲染的过程中自动追踪的,所以系统能准确知晓哪个组件确实需要被重新渲染。
2,Vue的路由库和状态管理库都由官方维护支持且与核心库同步更新,而React选择把这些问题交给社区维护,因此生态更丰富。
3,Vue-cli脚手架可进行配置

监听数据变化的实现原理不同Vue 通过 getter/setter 以及一些函数的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能React 默认是通过比较引用的方式进行的,如果不优化(PureComponent/shouldComponentUpdate)可能导致大量不必要的VDOM的重新渲染为什么 React 不精确监听数据变化呢?这是因为 Vue 和 React 设计理念上的区别,Vue 使用的是可变数据,而React更强调数据的不可变。所以应该说没有好坏之分,Vue更加简单,而React构建大型应用的时候更加鲁棒。因为一般都会用一个数据层的框架比如 Vuex 和 Redux,所以这部分不作过多解释,在最后的 vuex 和 redux的区别 中也会讲到。
数据流的不同大家都知道Vue中默认是支持双向绑定的。在Vue1.0中我们可以实现两种双向绑定:父子组件之间,props 可以双向绑定组件与DOM之间可以通过 v-model 双向绑定在 Vue2.x 中去掉了第一种,也就是父子组件之间不能双向绑定了(但是提供了一个语法糖自动帮你通过事件的方式修改),并且 Vue2.x 已经不鼓励组件对自己的 props 进行任何修改了。所以现在我们只有 组件 <--> DOM 之间的双向绑定这一种。

posted @ 2020-08-25 17:12  Daeeman  阅读(188)  评论(0编辑  收藏  举报