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
- 快
- 把紧耦合编程了高内聚