react文檔——渲染元素

渲染元素

元素是 React 應(yīng)用中最小的構(gòu)建單元炼七。

一個(gè)元素描述你想在屏幕上看到的東西。

const element = <h1>Hello,world</h1>;

不同于 DOM 元素布持,React 元素是普通的對(duì)象豌拙,并且創(chuàng)建起來(lái)很“便宜”。React DOM 負(fù)責(zé)更新DOM 以匹配 React 元素题暖。

注意:

有人可能會(huì)混淆元素和廣為人知的“組件”的概念按傅。我們將會(huì)在下一章節(jié)介紹組件。組件是由元素構(gòu)成的胧卤,在下一章之前唯绍,我們鼓勵(lì)你先閱讀這一章節(jié)。

將元素渲染到 DOM

假設(shè)在你的 HTML 文件某處有個(gè)div標(biāo)簽枝誊。

<div id="root"></div>

我們稱這是一個(gè)“根” DOM 節(jié)點(diǎn)况芒,因?yàn)?React DOM 會(huì)管理它里面的一切。

React 構(gòu)建的應(yīng)用通常只有一個(gè)根 DOM 節(jié)點(diǎn)叶撒。如果你整合 React 到一個(gè)現(xiàn)有的應(yīng)用中绝骚,你可以有隨意多個(gè)獨(dú)立的根 DOM 節(jié)點(diǎn)。

要渲染一個(gè) React 元素到一個(gè)根 DOM 節(jié)點(diǎn)祠够,通過把它們傳遞給ReactDOM.render()

const element = <h1>Hello, world</h1>;
ReactDOM.render(
  element,
  document.getElementById('root')
);

CodePen試試压汪。

它會(huì)在頁(yè)面上顯示“Hello World”。

更新渲染的元素

React 元素是不可變的古瓤。一旦你創(chuàng)建一個(gè)元素止剖,你不能改變它的子元素或?qū)傩浴R粋€(gè)元素就像電影中單獨(dú)的一幀:它表示在某個(gè)時(shí)間點(diǎn)上的 UI落君。

到目前我們所知的穿香,更新 UI 的唯一方法是創(chuàng)建一個(gè)新的元素,然后把它傳遞給ReactDOM.render()叽奥。

考慮下面這個(gè)時(shí)鐘的例子:

function tick() {
  const element = (
    <div>
      <h1>Hello, world!</h1>
      <h2>It is {new Date().toLocaleTimeString()}.</h2>
    </div>
  );
  ReactDOM.render(
    element,
    document.getElementById('root')
  );
}

setInterval(tick, 1000);

CodePen上試試扔水。

它從setInterval()回調(diào)函數(shù)中,每隔一秒調(diào)用一次ReactDOM.render()朝氓。

注意:

在實(shí)踐中魔市,大多數(shù) React 應(yīng)用僅調(diào)用一次ReactDOM.render()主届。在接下來(lái)的部分我們將會(huì)學(xué)習(xí)怎樣將這樣的代碼封裝到狀態(tài)組件中。

我們推薦你不要跳過這些話題待德,因?yàn)樗鼈冎g彼此依賴君丁。

React 僅按需更新

React DOM 把元素及其子元素和之前的做比較,然后僅按需更新 DOM将宪,使DOM 達(dá)到所期望的狀態(tài)绘闷。

你可以通過使用瀏覽器工具檢查上一個(gè)例子來(lái)驗(yàn)證。

即使我們?cè)诿恳幻雱?chuàng)建一個(gè)元素描述整個(gè) UI 樹较坛,只有內(nèi)容發(fā)生變化的文本節(jié)點(diǎn)被 React DOM 更新印蔗。

根據(jù)我們的經(jīng)驗(yàn),我們應(yīng)該考慮UI在任何一個(gè)時(shí)間點(diǎn)如何展現(xiàn)丑勤,而不是如何消除在這個(gè)變化過程的一系列的bug华嘹。

下一步

組件和Props

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市法竞,隨后出現(xiàn)的幾起案子耙厚,更是在濱河造成了極大的恐慌,老刑警劉巖岔霸,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薛躬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡呆细,警方通過查閱死者的電腦和手機(jī)型宝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侦鹏,“玉大人诡曙,你說(shuō)我怎么就攤上這事÷运” “怎么了价卤?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)渊涝。 經(jīng)常有香客問我慎璧,道長(zhǎng),這世上最難降的妖魔是什么跨释? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任胸私,我火速辦了婚禮,結(jié)果婚禮上鳖谈,老公的妹妹穿的比我還像新娘岁疼。我一直安慰自己,他們只是感情好缆娃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布捷绒。 她就那樣靜靜地躺著瑰排,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暖侨。 梳的紋絲不亂的頭發(fā)上椭住,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音字逗,去河邊找鬼京郑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛葫掉,可吹牛的內(nèi)容都是我干的些举。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俭厚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼金拒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起套腹,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎资铡,沒想到半個(gè)月后电禀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笤休,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年尖飞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片店雅。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡政基,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闹啦,到底是詐尸還是另有隱情沮明,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布窍奋,位于F島的核電站荐健,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏琳袄。R本人自食惡果不足惜江场,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窖逗。 院中可真熱鬧址否,春花似錦、人聲如沸碎紊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至帮匾,卻和暖如春啄骇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘟斜。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工缸夹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人螺句。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓虽惭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親芽唇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南取劫,這只是我在學(xué)習(xí)過程中的一些閱讀筆記匆笤,個(gè)人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,834評(píng)論 1 18
  • 自己最近的項(xiàng)目是基于react的谱邪,于是讀了一遍react的文檔炮捧,做了一些記錄(除了REFERENCE部分還沒開始讀...
    潘逸飛閱讀 3,383評(píng)論 1 10
  • —— 基礎(chǔ)知識(shí)、JSX介紹惦银、React 元素咆课、組件和屬性、狀態(tài)和生命周期 此文檔來(lái)自 React 官方文檔扯俱,在英文...
    thelastcookies閱讀 487評(píng)論 0 1
  • 在線思維導(dǎo)圖 processon 我的金數(shù)據(jù) 我的公眾號(hào) DIGI PHOTO 用鏡頭享受生命 http://...
    尚武三寶閱讀 256評(píng)論 0 0
  • 參加了兩次悅啟士教練線下交流活動(dòng)书蚪,也參加了一次德芬老師的成都見面會(huì),前者是旁聽教練式對(duì)話迅栅,后者是旁聽心靈療愈...
    豬豬家的小狗狗妹閱讀 947評(píng)論 0 2