react-01

image.png

有些同學(xué)可能會問,為什么不直接從 JSX 直接渲染構(gòu)造 DOM 結(jié)構(gòu),而是要經(jīng)過中間這么一層呢?

第一個原因是,當(dāng)我們拿到一個表示 UI 的結(jié)構(gòu)和信息的對象以后,不一定會把元素渲染到瀏覽器的普通頁面上,我們有可能把這個結(jié)構(gòu)渲染到 canvas 上,或者是手機(jī) App 上。所以這也是為什么會要把 react-dom 單獨抽離出來的原因,可以想象有一個叫 react-canvas 可以幫我們把 UI 渲染到 canvas 上,或者是有一個叫 react-app 可以幫我們把它轉(zhuǎn)換成原生的 App(實際上這玩意叫 ReactNative)。

第二個原因是,有了這樣一個對象。當(dāng)數(shù)據(jù)變化,需要更新組件的時候,就可以用比較快的算法操作這個 JavaScript 對象,而不用直接操作頁面上的 DOM,這樣可以盡量少的減少瀏覽器重排,極大地優(yōu)化性能。這個在以后的章節(jié)中我們會提到。

總結(jié):
JSX 是 JavaScript 語言的一種語法擴(kuò)展,長得像 HTML,但并不是 HTML。
React.js 可以用 JSX 來描述你的組件長什么樣的。
JSX 在編譯的時候會變成相應(yīng)的 JavaScript 對象描述。
react-dom 負(fù)責(zé)把這個用來描述 UI 信息的 JavaScript 對象變成 DOM 元素,并且渲染到頁面上

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評論 25 709
  • 本筆記基于React官方文檔,當(dāng)前React版本號為15.4.0。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,913評論 14 128
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南,這只是我在學(xué)習(xí)過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,931評論 1 18
  • 什么是同源策略 同源策略是瀏覽器的安全設(shè)置。指的是在 相同協(xié)議: 相同域名: 相同端口; 的網(wǎng)站只能訪問與包含它的...
    Nicklzy閱讀 1,154評論 1 52
  • 我不清楚我是誰, 就像你的一只眼睛永遠(yuǎn)看不到另一只眼睛一樣。
    阿森森森閱讀 61評論 0 0

友情鏈接更多精彩內(nèi)容