,
在react當(dāng)中虛擬DOM可以說優(yōu)化了很多我們對(duì)真實(shí)DOM的操作,優(yōu)化了性能。 什么是虛擬DOM?vdom可以看作是一個(gè)對(duì)象,使用javascript模擬了DOM結(jié)構(gòu)的樹形結(jié)構(gòu),這個(gè)樹結(jié)構(gòu)包含整個(gè)DOM結(jié)構(gòu)的信息;
html:
`
`
["div", { class: "demo" }, ["span", {}, "123"]]
`
思考一:
1. 生成state 數(shù)據(jù); 2. 解析jsx模版; 3. 數(shù)據(jù) + 模版 生成真實(shí)DOM顯示出來; 4. state 發(fā)生變化; 5. 數(shù)據(jù) + 模版 生成真實(shí)DOM替換到原有DOM;
缺點(diǎn):
生成了2次DOM模版,數(shù)據(jù)發(fā)生變化將原有DOM整個(gè)替換掉;
思考二:
1. 生成state數(shù)據(jù); 2. 解析jsx模版; 3. 數(shù)據(jù) + 模版生成真實(shí)DOM顯示出來; 4. state 發(fā)生變化; 5. 數(shù)據(jù) + 模版 生成真實(shí)DOM 并不替換原有DOM;?。,m n 6. 在內(nèi)存中將新DOM(DocumentFragment)與原始DOM,做對(duì)比,找差異; 7. 找出對(duì)應(yīng)的發(fā)生了變化; 8. 用新DOM對(duì)應(yīng)的位置替換掉原始DOM發(fā)生變化的地方;
缺點(diǎn):
雖然節(jié)約了整個(gè)替換的性能,但是也多了很多步驟,并且損耗了內(nèi)存中做DOM比對(duì)的性能;在性能提升 上并沒有得到多大的提升;
思考三:
1. 生成state數(shù)據(jù); 2. 解析jsx模版; 3. 數(shù)據(jù) + 模版生成真實(shí)DOM顯示出來; 4. 數(shù)據(jù) + 模版生成原始虛擬DOM(Json),來表述真實(shí)DOM; 5. state 發(fā)生變化; 6. 數(shù)據(jù) + 模版生成新的虛擬DOM, 7. 對(duì)比原始虛擬DOM與新的虛擬DOM的差異; 8. 操作真實(shí)DOM,將差異部分進(jìn)行修改;為什么react當(dāng)中的虛擬DOM可以提高性能呢?
主要是因?yàn)闇p少了對(duì)真實(shí)DOM的操作,以及真實(shí)DOM的對(duì)比,取而代之的是用js對(duì)象的對(duì)比,這樣實(shí)現(xiàn) 了性能的極大的飛躍。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/105460.html
摘要:比較虛擬與的差異,以及對(duì)節(jié)點(diǎn)的操作,其實(shí)就是樹的差異比較,就是對(duì)樹的節(jié)點(diǎn)進(jìn)行替換。忽略掉這種特殊的情況后,大膽的修改了算法按直系兄弟節(jié)點(diǎn)比較比較。這當(dāng)中對(duì)比的細(xì)節(jié)才是整個(gè)算法最精粹的地方。 一、舊社會(huì)的頁面渲染 ???????在jQuery橫行的時(shí)代,F(xiàn)Eer們,通過各種的方式去對(duì)頁面的DOM進(jìn)行操作,計(jì)算大小,變化,來讓頁面生動(dòng)活潑起來,豐富的DOM操作,讓一個(gè)表面簡(jiǎn)單的頁面能展示出...
摘要:表示調(diào)用棧在下一將要執(zhí)行的任務(wù)。兩方性能解藥我們一般有兩種方案突破上文提到的瓶頸將耗時(shí)高成本高易阻塞的長任務(wù)切片,分成子任務(wù),并異步執(zhí)行這樣一來,這些子任務(wù)會(huì)在不同的周期執(zhí)行,進(jìn)而主線程就可以在子任務(wù)間隙當(dāng)中執(zhí)行更新操作。 showImg(https://segmentfault.com/img/remote/1460000016008111); 性能一直以來是前端開發(fā)中非常重要的話題...
摘要:?jiǎn)蜗驍?shù)據(jù)流應(yīng)用的核心設(shè)計(jì)模式,數(shù)據(jù)流向自頂向下我也是性子急的人,按照技術(shù)界的慣例,在學(xué)習(xí)一個(gè)技術(shù)前,首先得說一句。然而的單向數(shù)據(jù)流的設(shè)計(jì)讓前端定位變得簡(jiǎn)單,頁面的和數(shù)據(jù)的對(duì)應(yīng)是唯一的我們可以通過定位數(shù)據(jù)變化就可以定位頁面展現(xiàn)問題。 書籍完整目錄 1.1 React 介紹 showImg(https://segmentfault.com/img/bVvJgS); 1.1.1 React ...
閱讀 2342·2021-11-25 09:43
閱讀 3354·2021-10-14 09:42
閱讀 3555·2021-10-12 10:12
閱讀 1632·2021-09-07 10:17
閱讀 1985·2019-08-30 15:54
閱讀 3244·2019-08-30 15:54
閱讀 1610·2019-08-30 15:53
閱讀 1996·2019-08-29 11:21