According to Vue.js' documentation,它使用引擎蓋下的VDOM來呈現UI。根據我的理解,VDOM主要是爲了避免「跟蹤依賴性」而發明的。藉助VDOM,可以調整應用程序的大部分內容,而不必知道究竟發生了什麼變化。因此,可以使用普通對象和數組來描述視圖,只需要通知框架有關更改(如React中的setState
)。然後,將兩個VDOM樹進行比較,並將最小的所需更改集應用於真實DOM。爲什麼Vue.js使用VDOM?
另一方面,Vue.js使用跟蹤的依賴關係。它確切知道發生了什麼變化,因此可以使用DOM綁定。此外,由於大多數Vue.js用戶已經在使用模板語言,因此VDOM提供的更大的靈活性並沒有真正受益。那麼爲什麼Evan決定使用VDOM?
我猜虛擬域將在服務器端渲染幫助。您可以在這裏閱讀更多(https://vuejs.org/2016/04/27/announcing-2.0/) –
模板語言可以在不使用VDOM抽象的情況下進行服務器渲染。您只需將模板編譯爲返回字符串(或字符串流)的函數即可。 –