亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

React當(dāng)中的虛擬DOM

bovenson / 488人閱讀

,

在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:

`

123

`
vdom(是一個(gè)json 對(duì)象,暫時(shí)用數(shù)組表示):

`
["div", { class: "demo" }, ["span", {}, "123"]]
`

如何實(shí)現(xiàn)虛擬dom?

思考一:

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

相關(guān)文章

  • 虛擬DOM與DIFF算法學(xué)習(xí)

    摘要:比較虛擬與的差異,以及對(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)單的頁面能展示出...

    codergarden 評(píng)論0 收藏0
  • 漫談前端性能 突破 React 應(yīng)用瓶頸

    摘要:表示調(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ā)中非常重要的話題...

    whlong 評(píng)論0 收藏0
  • 精益 React 學(xué)習(xí)指南 (Lean React)- 1.1 React 介紹

    摘要:?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 ...

    lsxiao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<