Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

闲扯 Virtual DOM

  自从 React 之后,Virtual DOM 就越来越放荡了。其实我心里一直塞塞地纳着一个闷。为什么会存在 Virtual DOM 这种东西?我个人是很反对这种东西的,感觉这是历史的车轮在回滚,是一个不好的势头。但既然它如此愉快地存在了,DOM 是不是就该反思一下自己了呢?

为什么会存在 Virtual DOM?

  讨论这个问题之前我们先来看下面这段 媳妇:“婆婆,为什么我老公出轨?”
婆婆:“你先把这几个饺子吃了。”
媳妇:“嗯。”
婆婆:“好吃吗?”
媳妇:“好吃。”
婆婆:“还想吃吗?”
媳妇:“想。”
婆婆:“再给你几个。”
婆婆:“还想吃吗?”
媳妇:“想。”
婆婆:“现在你知道自己为什么老公出轨了吗?”
媳妇:“我懂了。因为他贪得无厌,永远不知道满足吧。”
婆婆:“你拉倒吧你!你瞅你胖的!”
  「为什么会存在 Virtual DOM」这个问题就和「为什么我老公出轨」是一样的,问题出在 DOM 自己身上。瞅瞅现在的 DOM 都胖成什么样了吧?一堆平时根本用不着的属性在每个元素上初始化。如此臃肿的 DOM 让人如何爱得起来?JavaScript 引擎的性能早就突破天际了,CSS 也很少为性能犯愁。Web 程序的两大慢点,一个是网络通讯慢,另一个就是 DOM 操作慢。网络通讯这个是天朝局域网的问题,反正距离共产主义还太遥远,咱就不奢望什么了。但 DOM 操作慢是全球性的,没有理由的,任性的,它就是慢!
  当人们无法忍受 DOM 的时候就制造出了 Virtual DOM。我觉得 Virtual DOM 就是用来掩盖 DOM 缺陷的东西。因为 DOM 太烂了,所以才会有 Virtual DOM。

Virtual DOM 是好是坏?

  Virtual DOM 是好是坏也不能一并而论。它是一个泛概念,也许有人实现出了比 DOM 优秀的,也许有人实现出了比 DOM 还烂的。但我认为就它的存在而言是一个不好的势头。因为它没有标准化,如果每家都自己实现一个 Virtual DOM,那还要 DOM 规范干嘛?简直是要回到解放前那个没有规范的战国时代啊喂!
  当然 Virtual DOM 的出现也不是没有意义的,至少它衬托出了 DOM 的烂,让我们意识到了各种问题。也是对 DOM 规范的一种示威吧?总是它对技术的进步还是非常有贡献的。

网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^