react和vue的区别

84 阅读1分钟

1.模板渲染方式不同

vue整体思想是html+css+js形式,react整体上是函数式思想,组件使用jsx语法,将html与css融入js。相对于没有任何前端框架基础的开发者来说,vue会更友好,更容易入门。而对于拥有函数式编程背景以及一些并不是以web为主要开发平台的开发人员来说,react更容易接受。

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

vue通过getter/setter以及一些函数劫持,能精确知道数据变化。react默认是通过比较引用的方式(diff),如果不优化可能导致大量不必要的VDOM重新渲染,为了优化要使用shouldComponentUpdate,根据需要判断是否继续渲染。设计理念上,vue使用的是可变数据,而react更强调数据的不可变。

3.数据流不同

vue组件与DOM之间可以通过v-model双向绑定,react一直不支持双向绑定,提倡单向数据流,称为setState()模式。

4.组件通信不同

image.png vue:父组件通过props向子组件传递数据或者回调,通常只传数据;子组件通过事件向父组件发送消息;通过provide/inject来实现父组件跨层级向子组件注入数据。 react:父组件通过props向子组件传递数据或者回调;子组件使用回调函数向父组件传递消息;通过context进行跨层级通信。

5.框架本质不同

vue本质上MVVM框架,由MVC发展而来的;react是前端组件化框架,由后端组件化发展而来。