React和Vue的区别

如题所述

第1个回答  2022-06-14
1、数据是否可变:React整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在React中,是单向数据流,推崇结合immutable来实现数据不可变;Vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟DOM。总之,React的性能优化需要手动去做,而Vue的性能优化是自动的,但是Vue的响应式机制也有问题,就是当state特别多的时候,Watcher也会很多,会导致卡顿,所以大型应用(状态特别多的)一般用React,更加可控。
2、通过js来操作一切,还是用各自的处理方式:React的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等;Vue是把html,css,js组合到一起,用各自的处理方式,Vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。
3、类式的组件写法,还是声明式的写法:React是类式的写法,api很少;而Vue是声明式的写法,通过传入各种options,api和参数都很多。所以React结合TypeScript更容易一起写,Vue稍微复杂。
4、扩展不同:React可以通过高阶组件(Higher Order Components--HOC)来扩展,而Vue需要通过mixins来扩展。
5、什么功能内置,什么交给社区去做:React做的事情很少,很多都交给社区去做,Vue很多东西都是内置的,写起来确实方便一些,比如Redux的combineReducer就对应Vuex的modules,比如reselect就对应Vuex的getter和Vue组件的computed,Vuex的mutation是直接改变的原始数据,而Redux的reducer是返回一个全新的state,所以Redux结合immutable来优化性能,Vue不需要。
相似回答