摘要:渲染元素開(kāi)場(chǎng)白接著上一節(jié)的講解后我們大概清楚了以下幾個(gè)事兒知道是個(gè)什么東東為什么要推薦使用以及的一些基本語(yǔ)法。本篇文章談一下是怎么渲染元素的。更新已渲染的元素元素是不可變的,一旦你創(chuàng)建了一個(gè)元素,就不能再修改其子元素或任何屬性。
React-渲染元素 開(kāi)場(chǎng)白
元素接著上一節(jié)JSX的講解后:我們大概清楚了以下幾個(gè)事兒:
知道JSX是個(gè)什么東東
為什么React要推薦使用JSX
以及JSX的一些基本語(yǔ)法。
本篇文章談一下React是怎么渲染元素的。
元素是React應(yīng)用中的最小部件,正是由一個(gè)或多個(gè)元素構(gòu)建出來(lái)了組件。
一個(gè)元素用于描述你將在屏幕上看到的內(nèi)容,比如:
const element =渲染元素到DOM 根DOM節(jié)點(diǎn)Hello, world
;
假設(shè)我們的HTML文件中有這樣的一個(gè) 我們稱這是一個(gè)根DOM節(jié)點(diǎn),該節(jié)點(diǎn)內(nèi)的所有內(nèi)容都是有React DOM管理 一個(gè)用React構(gòu)建的應(yīng)用程序通常只有一個(gè)根DOM節(jié)點(diǎn)。 但是如果把這些應(yīng)用程序整合到現(xiàn)有的app當(dāng)中去,那么該app中就可能會(huì)包含多個(gè)相互獨(dú)立的根DOM節(jié)點(diǎn)。 React元素是不可變的,一旦你創(chuàng)建了一個(gè)元素,就不能再修改其子元素或任何屬性。 以上代碼,每隔1秒,就會(huì)通過(guò)setInterval()回調(diào)ReactDOM.render()方法來(lái)重新渲染元素。 實(shí)際上,大多數(shù) React 應(yīng)用只會(huì)調(diào)用 ReactDOM.render() 一次。在接下來(lái)的章節(jié)中,我們將學(xué)習(xí)如何將這些代碼封裝到有狀態(tài)的組件中。 React DOM 會(huì)將元素及其子元素與之前版本逐一對(duì)比, 并只對(duì)有必要更新的 DOM 進(jìn)行更新, 以達(dá)到 DOM 所需的狀態(tài)。 從上圖中我們可以看出,即使我們我們每隔 1 秒都重建了整個(gè)元素, 但實(shí)際上 React DOM 只更新了修改過(guò)的文本節(jié)點(diǎn)。 歡迎大家訪問(wèn)我的blog,有更精彩的文章吆! 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/88268.html
更新UI的唯一方法是創(chuàng)建一個(gè)新的元素,并將其傳入到ReactDOM.render()方法。
來(lái)思考下時(shí)鐘的例子,完整代碼如下:
React 只更新必需要更新的部分
我們對(duì) 上一個(gè)例子 進(jìn)行檢查來(lái)驗(yàn)證這一點(diǎn):
本文做為自己加強(qiáng)記憶之篇,均參考自:
http://www.css88.com/react/do...,在此列出,大家共同學(xué)習(xí)。
摘要:組件是否應(yīng)當(dāng)渲染新的或,返回表示跳過(guò)后續(xù)的生命周期方法,通常不需要使用以避免出現(xiàn)。組件銷毀生命周期函數(shù)的淵源自定義組件的生命周期主要通過(guò)三種狀態(tài)進(jìn)行管理,它們負(fù)責(zé)通知組件當(dāng)前所處的狀態(tài),應(yīng)該執(zhí)行生命周期中的哪個(gè)步驟,是否可以更新。 生命周期有哪些以及用法 首次實(shí)例化 getDefaultProps作用于組件類,只調(diào)用一次,返回對(duì)象用于設(shè)置默認(rèn)的props,對(duì)于引用值,會(huì)在實(shí)例中共享 ...
摘要:一更新的方式有三種渲染接下來(lái),我們就來(lái)看下源碼二作用在提供的里渲染一個(gè)元素,并返回對(duì)該組件的引用常見(jiàn)的用法是這個(gè)官網(wǎng)網(wǎng)址源碼服務(wù)端使用方法渲染節(jié)點(diǎn)是讓服務(wù)端盡可能復(fù)用節(jié)點(diǎn),提高性能元素容器應(yīng)用渲染結(jié)束后,調(diào)用的函數(shù)錯(cuò)誤抓取方法本質(zhì)是返回 showImg(https://segmentfault.com/img/remote/1460000020064414?w=1240&h=641);...
摘要:爭(zhēng)取把源碼剖析透學(xué)習(xí)透。除了用戶定義的復(fù)合組件外元素還可能表示特定于平臺(tái)的主機(jī)組件。裝載的具體結(jié)果有時(shí)在源代碼中稱為裝載映像取決于渲染器,可能為節(jié)點(diǎn)字符串服務(wù)器或表示本機(jī)視圖的數(shù)值。其所缺少的關(guān)鍵部分是對(duì)更新的支持。 關(guān)于源碼解讀的系列文章,可以關(guān)注我的github的這個(gè)倉(cāng)庫(kù), 現(xiàn)在才剛剛寫,后續(xù)有空就寫點(diǎn)。爭(zhēng)取把react源碼剖析透學(xué)習(xí)透。有不正確的地方希望大家?guī)兔χ刚4蠹一ハ鄬W(xué)習(xí)...
摘要:組件的性能優(yōu)化高德納我們應(yīng)該忘記忽略很小的性能優(yōu)化,可以說(shuō)的情況下,過(guò)早的優(yōu)化是萬(wàn)惡之源,而我們應(yīng)該關(guān)心對(duì)性能影響最關(guān)鍵的另外的代碼。對(duì)多個(gè)組件的性能優(yōu)化當(dāng)一個(gè)組件被裝載更新和卸載時(shí),組件的一序列生命周期函數(shù)會(huì)被調(diào)用。 React組件的性能優(yōu)化 高德納: 我們應(yīng)該忘記忽略很小的性能優(yōu)化,可以說(shuō)97%的情況下,過(guò)早的優(yōu)化是萬(wàn)惡之源,而我們應(yīng)該關(guān)心對(duì)性能影響最關(guān)鍵的另外3%的代碼。...
摘要:?jiǎn)蜗驍?shù)據(jù)流應(yīng)用的核心設(shè)計(jì)模式,數(shù)據(jù)流向自頂向下我也是性子急的人,按照技術(shù)界的慣例,在學(xué)習(xí)一個(gè)技術(shù)前,首先得說(shuō)一句。然而的單向數(shù)據(jù)流的設(shè)計(jì)讓前端定位變得簡(jiǎn)單,頁(yè)面的和數(shù)據(jù)的對(duì)應(yīng)是唯一的我們可以通過(guò)定位數(shù)據(jù)變化就可以定位頁(yè)面展現(xiàn)問(wèn)題。 書(shū)籍完整目錄 1.1 React 介紹 showImg(https://segmentfault.com/img/bVvJgS); 1.1.1 React ...
閱讀 2462·2021-11-23 09:51
閱讀 1872·2021-10-13 09:40
閱讀 1390·2021-09-30 10:01
閱讀 597·2021-09-26 09:46
閱讀 2256·2021-09-23 11:55
閱讀 1401·2021-09-10 10:51
閱讀 2266·2021-09-09 09:33
閱讀 2235·2019-08-29 17:25