偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何在React中操作DOM元素?

譯文
開(kāi)發(fā) 前端
DOM操作是動(dòng)態(tài)更改Web頁(yè)面內(nèi)容的過(guò)程。因?yàn)镈OM總是樹(shù)形結(jié)構(gòu)的,所以使用DOM相當(dāng)快速,遍歷DOM也很容易。

【51CTO.com快譯】在React中,對(duì)Virtual DOM進(jìn)行更改,然后同步到React DOM的過(guò)程叫和解。React判斷出哪些對(duì)象發(fā)生了變化的這個(gè)過(guò)程為漂移。

?[[392192]]?

DOM操作過(guò)程

  • React更新虛擬DOM。
  • 然后將前一個(gè)狀態(tài)的虛擬DOM與更新后的虛擬DOM進(jìn)行比較,以識(shí)別對(duì)象中發(fā)生了哪些更改。這是用差分算法完成的。
  • 更改后的對(duì)象將在實(shí)際DOM上得到更新。

差異算法示例

當(dāng)根元素不同時(shí):

// Old version
<div><Tree/></div>

// New update
<span><Tree/></span>

React將刪除該樹(shù),然后再次重建整個(gè)樹(shù)。

當(dāng)元素中的屬性更改時(shí):

// Old
<span id="span1" />

//New
<span id="span2" />

只有差異會(huì)在屬性中找到,并會(huì)相應(yīng)地進(jìn)行更改。

最后添加了新的子元素:

// old
<ul>
<li>Child1</li>
<li>Child2</li>
</ul>

//New
<ul>
<li>Child1</li>
<li>Child2</li>
<li>Child3</li>
</ul>

新元素將添加到列表的末尾。

在列表的開(kāi)頭添加了新元素

// Old
<ul>
<li>Child1</li>
<li>Child2</li>
</ul>

//New
<ul>
<li>Child3</li>
<li>Child1</li>
<li>Child2</li>
</ul>

將新元素添加到開(kāi)頭時(shí),它將再次重建整個(gè)列表。

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】


責(zé)任編輯:黃顯東 來(lái)源: hackernoon.com
相關(guān)推薦

2010-09-08 16:50:11

JavaScriptDOM操作

2021-02-26 15:10:00

前端React組件交互

2022-07-15 09:01:15

React對(duì)象編程

2020-09-28 14:26:42

Shadow DOMWeb組件

2021-05-23 15:46:23

React代碼前端

2016-08-11 16:48:10

ReactjQueryJavaScript

2023-01-01 23:42:22

React框架暗黑模式

2022-06-22 09:56:19

PythonMySQL數(shù)據(jù)庫(kù)

2023-01-29 08:00:00

Instagram濾鏡圖片編輯

2021-02-22 08:19:49

js前端元素

2023-12-01 09:18:27

AxiosAxios 庫(kù)

2009-07-09 10:15:23

PHP DOM

2024-03-18 09:50:18

Selenium元素Python

2010-09-28 13:50:20

2010-09-28 13:40:52

DOM元素

2021-03-08 11:47:34

內(nèi)核Linux內(nèi)核模塊

2016-04-06 11:29:58

JavaScriptDOM操作

2022-11-15 18:31:37

React

2022-12-22 08:41:52

FiberReact

2023-07-19 15:45:47

ReactDOM輕量級(jí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)