很多人不理解為什么在在線建模渲染中常常使用虛擬DOM,而不采用真實(shí)DOM進(jìn)行制作。今天藍(lán) 海 微妙網(wǎng)渲 染就為大家揭開(kāi)這個(gè)謎團(tuán)。 我們?yōu)槭裁床恢苯邮褂迷?DOM 元素,而是使用真實(shí) DOM 元素的簡(jiǎn)化版 VNode,最大的原因就是createElement 這個(gè)方法創(chuàng)建的真實(shí) DOM 元素會(huì)帶來(lái)性能上的損失。我們來(lái)看一個(gè)createElement 方法的例子。 打開(kāi) console 運(yùn)行一下上面的代碼,會(huì)發(fā)現(xiàn)打印出來(lái)的屬性多達(dá) 228 個(gè),而這些屬性有 90% 多對(duì)我們來(lái)說(shuō)都是無(wú)用的。VNode 就是簡(jiǎn)化版的真實(shí) DOM 元素,關(guān)聯(lián)著真實(shí)的dom,比如屬性elm,只包括我們需要的屬性,并新增了一些在 diff 過(guò)程中需要使用的屬性,例如 isStatic。 ![]() 正因?yàn)槿绱耍覀儾胚x擇了虛擬DOM用于在線建模渲染的過(guò)程。藍(lán) 海創(chuàng) 意云渲 染分享的這篇文章的用意,大家應(yīng)該明白了吧。 |