1,监听数据实现的原理不一样

Vue通过getter/setter以及一些函数劫持,精确的知道数据的变化。
React通过比较引用的方式(diff)来比较差异。
这是因为Vue和React设计理念上的区别,Vue使用的是可变数据,React强调的是数据的不可变。

2,数据流不一样

Vue的v-model指令支持双向绑定。
React强调的是单向数据流。

3,HoC(高阶组件)和mixins(高级组件)

Vue组合不同功能的方式是通过mixins。
React组合不同功能的方式是通过HoC,高阶组件的本质就是高阶函数,React的组件是一个纯粹的函数。

4,组件通信的区别

Vue中子组件像父组件传递消息时通过事件。
React中子组件像父组件传递消息通过回调函数。

5,模板渲染的方式不一样

表面上:React是通过JSX渲染模板,而Vue是通过HTML语法来渲染的。
深层来讲:React是在组件JS代码中,通过原生JS实现模板的常见用法显得更加原生(插值,循环,条件等等),
而Vue是在和组件JS代码分离的单独模板中通过指令来实现的。

6,渲染过程不一样

Vue在渲染的过程中会跟踪每一个组件之间的依赖关系,不需要重新渲染整个组件树。
React在应用的状态被改变时,全部子组件都会被重新渲染,可以通过shouldComponentUpdata这个生命周期进行控制。

7,框架本质不一样

Vue的本质是MVVM框架,由MVC发展而来。
React是前端组件化框架,由后端组件化发展而来。