但測試結(jié)果卻比React更快?
React 官方從未說過比真實(shí)DOM快,實(shí)際上react也需要使用原生的DOM操作——innerHTML。
React的渲染快,指的是批量操作DOM的時(shí)候,比如一次性操作多個(gè)p節(jié)點(diǎn),或者操作某個(gè)節(jié)點(diǎn)下的子節(jié)點(diǎn),這時(shí)候React就快些。
React原理中的 diff算法:
react在重新渲染時(shí),會根據(jù)diff算法計(jì)算新DOM和就DOM直接的不同,只更新這部分,而不動(dòng)其他的DOM,而此時(shí)用的原生DOM操作是更新所有的DOM。
打個(gè)比方:如果你要重新渲染一個(gè)ul下的li,用react渲染,react只更新變化的li節(jié)點(diǎn),沒變化的不會動(dòng),而原生操作,js一般都是重新生成所有的li,如果你自己比較,只更新其中變化的li,那么就比react快。
【恰巧最近在更新react全家桶文章,歡迎關(guān)注,大家一起學(xué)習(xí)進(jìn)步】