2.1 以前是如何操作 DOM 的 (Mutable)

  • query 到 DOM 上一个元素
  • 改吧改吧

2.2 Virtual DOM (Immutable)

  • 想好要往 DOM 上放什么东西
  • 把它给 Virtual DOM
  • Virtual DOM 决定哪些应该修改 DOM 哪些不用

为什么说前者是 Mutable 后者是 Immutable,这是相对你的业务逻辑来说的。

DOM 本身是 Mutable 的东西,把它柔和到你的业务上给你的逻辑加上了不少 mutable 的因素,而 Virtual DOM 成功的屏蔽掉了 mutable 的 DOM,每次 render 的 Component 其实都是新的,并不是以前 Component 的修改。

所以使用 Virutal DOM

  • 容易 reason about, 因为 immutable
  • 把紧耦合编程了高内聚