监听数据变得实现原理不同

Vue 通过 getter / setter 以及一些函数的劫持,能精确直到数据变化

React 默认是通过比较引用的方式( diff )进行的,如果不优化可能导致大量必要的 VDOM 的重新渲染。

设计理念不同

vue使用的是可变数据,而 React 更强调数据不可变

数据流不同

Vue 是双向绑定数据流,而 React 是单向数据流

组合不同功能方式不同

Vue 使用 mixins(混合),而 React 使用 Hoc(高阶组件:高阶组件本质上是一个函数,函数内部返回一个类组件)

通信方式不同

 

Vue中有三种方式可以实现组件通信:父组件通过props向子组件传递数据或者回调,虽然可以传递回调,但是我们一般只传数据;子组件通过事件向父组件发送消息;通过V2.2.0中新增的provide/inject来实现父组件向子组件注入数据,可以跨越多个层级。

React中也有对应的三种方式:父组件通过props可以向子组件传递数据或者回调;可以通过 context 进行跨层级的通信,这其实和 provide/inject 起到的作用差不多。React 本身并不支持自定义事件,而Vue中子组件向父组件传递消息有两种方式:事件和回调函数,但Vue更倾向于使用事件。在React中我们都是使用回调函数的,这可能是他们二者最大的区别。

模板渲染方式的不同

React是通过JSX渲染模板

而Vue是通过一种拓展的HTML语法进行渲染

渲染过程不同

Vue 是边计算边渲染,而 React 是等计算完毕之后在渲染

框架本质不同

Vue本质是MVVM框架,由MVC发展而来。

React是前端组件化框架,由后端组件化发展而来。

Logo

前往低代码交流专区

更多推荐