vue 和 react 的区别

1.vue是双向数据流 react是单向数据流

react是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中是单向数据流,推崇结合immutable来实现数据不可变。

而vue的思想是响应式的,也就是基于数据可变的,通过每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。

所以说,react的性能优化需要手动去做,而vue的性能优化是自动的,但是vue的响应式机制也有问题,就是当state特别多的时候,Watcher也会很多,会导致卡顿,所以大型应用(状态较多的)一般使用react,更加可控。

2.各有各的处理方式

react的思路是all in js, 通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等

vue是吧html,css,js组合到一起,用各自的处理方式,vue有单文件组件,可以把HTML、css、js、写到一个文件中,html提供了模板引擎来处理。

3.类式的组件写法,还是声明式的写法

react是类(class)式的写法,api很少

vue是声明式的写法,通过传入各种options,api和参数都很多。所以react结合typescript更容易一起写,vue稍微复杂