(1)react和vue的区别
监听数据变化的实现原理不同
数据绑定不同
组件通信不同
框架本质不同
监听数据变化的实现原理不同
Vue通过 getter/setter以及一些函数的劫持,能精确知道数据变化。
React默认是通过比较引用的方式(diff)进行的,如果不优化可能导致大量不必要的DOM的重新渲染。
数据绑定不同
vue是双向绑定, Vue.js 最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。
组件通信不同
Vue中有三种方式可以实现组件通信:
-
父组件通过props向子组件传递数据或者回调,虽然可以传递回调,但是我们一般只传数据;
-
子组件通过事件向父组件发送消息;
-
通过V2.2.0中新增的provide/inject来实现父组件向子组件注入数据,可以跨越多个层级。
React中也有对应的三种方式:
-
父组件通过props可以向子组件传递数据或者回调;
-
可以通过 context 进行跨层级的通信,这其实和 provide/inject 起到的作用差不多。
框架本质不同
Vue本质是MVVM框架,由MVC发展而来;
React是前端组件化框架,由后端组件化发展而来。
(2)react和vue的优缺点
Vue的优缺点:简单、快速、强大、对模块友好,但不支持IE8。
React的优缺点:速度快、夸浏览器兼容、模块化;但学习曲线陡峭,需要深度的知识来构建应用程序。