reygreen1 / daily-study

0 stars 0 forks source link

Differences between React and Vue #3

Open reygreen1 opened 1 year ago

reygreen1 commented 1 year ago

通用性角度:

  1. 使用体验

Vue 的 API 对开发者更友好,更熟悉的模板和特性(简易性);React 使用 FP 的开发理念、拥有丰富的技术选型(灵活性)。

Vue 的使用习惯和思维方式更适合初学者,React 的 FP 开发理念不是一般人员可以迅速适应的。

  1. 响应式系统

Vue 提供反应式的数据,当数据变更,视图自动更新。Push-based 方式,数据变更会自动推送出去,渲染系统自动渲染更新。

React 的数据更新需要主动调用 setState 去告知。Pull-based 方式,用户主动告知渲染系统去渲染更新。

reygreen1 commented 1 year ago

相同点:

  1. 数据驱动视图
  2. 组件化
  3. Virtual DOM
reygreen1 commented 1 year ago

技术角度差异:

  1. 核心思想 Vue 是灵活易用的渐进式框架,进行数据拦截/代理,对数据变化的监听更敏感、更准确。 React 要推崇的是 FP 设计理念、数据不可变性和单项数据流。
  2. 组件写法 Vue 使用 SFC(单文件组件),更符合传统开发理念。 React 使用 JSX + inline style。
  3. Diff 算法 Vue 的 diff 算法使用了双端比较,相比 React 的算法,可以减少节点移动次数,减少不必要的性能损耗。
  4. 响应式原理 Vue 依赖收集,自动优化,数据可变;Vue 递归监听 data 的所有属性,直接修改;数据变化时,自动找到所有依赖组件重新渲染。 React 依赖状态机,手动优化,数据不可变;数据变化时,以组件为根目录,默认全部重新渲染。