跳到主要内容

React和Vue的区别

React使用单向数据流 Vue使用双向绑定

单向数据流

单向数据流不是单向绑定,React使用单向数据流是因为 Stateimmutable 的所以想要改变一个 State 需要结合变动的数据和原始的 State 计算出新的 State,React基于这个新的 State 重新渲染页面。这就是React的单向数据流。

双向绑定

Vue的双向绑定指的是ModelView的双向绑定,也就是说 data 的改变会导致视图改变,视图的改变也会改变 data 的值,比如: v-model

Diff 算法不同

  • vue对比节点,如果节点元素类型相同,但是className不同,认为是不同类型的元素,会进行删除重建,但是react则会认为是同类型的节点,只会修改节点属性。
  • vue的列表比对采用的是首尾指针法,而react采用的是从左到右依次比对的方式,当一个集合只是把最后一个节点移动到了第一个,react会把前面的节点依次移动,而vue只会把最后一个节点移动到最后一个,从这点上来说vue的对比方式更加高效。

组件写法不同

React 采用的是JSX,Vue通过template的单文件组件。