React和Vue的区别
React使用单向数据流 Vue使用双向绑定
单向数据流
单向数据流不是单向绑定,React使用单向数据流是因为 State
是 immutable
的所以想要改变一个 State
需要结合变动的数据和原始的 State
计算出新的 State
,React基于这个新的 State
重新渲染页面。这就是React的单向数据流。
双向绑定
Vue的双向绑定指的是Model
和View
的双向绑定,也就是说 data
的改变会导致视图改变,视图的改变也会改变 data
的值,比如: v-model
Diff
算法不同
- vue对比节点,如果节点元素类型相同,但是className不同,认为是不同类型的元素,会进行删除重建,但是react则会认为是同类型的节点,只会修改节点属性。
- vue的列表比对采用的是首尾指针法,而react采用的是从左到右依次比对的方式,当一个集合只是把最后一个节点移动到了第一个,react会把前面的节点依次移动,而vue只会把最后一个节点移动到最后一个,从这点上来说vue的对比方式更加高效。
组件写法不同
React
采用的是JSX,Vue
通过template的单文件组件。