react虛擬dom原理 網(wǎng)上都說操作真實(shí)DOM慢,但測(cè)試結(jié)果卻比React更快,為什么?
網(wǎng)上都說操作真實(shí)DOM慢,但測(cè)試結(jié)果卻比React更快,為什么?React從未被官方稱為比real dom更快。實(shí)際上,react還需要使用本機(jī)DOM操作innerHTML。react的快速呈現(xiàn)是指D
網(wǎng)上都說操作真實(shí)DOM慢,但測(cè)試結(jié)果卻比React更快,為什么?
React從未被官方稱為比real dom更快。實(shí)際上,react還需要使用本機(jī)DOM操作innerHTML。
react的快速呈現(xiàn)是指DOM的批處理操作,比如多個(gè)P節(jié)點(diǎn)的一次性操作,或者某個(gè)節(jié)點(diǎn)下的子節(jié)點(diǎn)的操作。在這種情況下,反應(yīng)更快。
react原理中的Diff算法:
重新渲染時(shí),react會(huì)根據(jù)Diff算法計(jì)算出新的DOM,這與DOM直接不同。它只更新DOM的這一部分,不移動(dòng)其他DOM。此時(shí),最初的DOM操作是更新所有DOM。
例如:如果要在UL下重新渲染Li,請(qǐng)使用react進(jìn)行渲染。React只更新已更改的Li節(jié)點(diǎn),而未更改的Li節(jié)點(diǎn)不會(huì)移動(dòng)。對(duì)于本機(jī)操作,JS通常會(huì)重新生成所有Li。如果您比較自己,只更新更改的Li節(jié)點(diǎn),它將比react更快。
[我們最近正在更新react文章。歡迎關(guān)注。讓我們一起學(xué)習(xí),共同進(jìn)步]