React、ReactJS、React.js、React Native… 這些有些相似的名詞你最近聽過多少遍了?對於它們究竟是什麼你是否感到困惑?今天就跟著小編一起來了解一下前端程序員需要了解的 React解讀!
這篇文章,小編將用非常樸實的語言和插圖來解釋React家族中的各種各樣的術語,並深入探索究竟是什麼使得 React 如此特別。本文中並不需要任何代碼知識便可閱讀。這隻是一些概念,從而不至於在後麵的學習過程中感到絕望。如果後麵需要溫故而知新的話,歡迎隨時回來閱讀。

準備好了嗎?我們開始了!
學習目標
讀完本文後,希望你能夠重新回到這裏,並能夠輕鬆回答下列問題:
什麼是 DOM ?
什麼是 React ?它的哪些方麵比較適合應用開發?
React 與 jQuery 的不同之處?
React 的核心概念是什麼?
什麼是響應式 UI ?
組件有哪些好處?
關於 Web ,這些都是你需要了解的。我們先來介紹一些你可能聽過很多年的術語。首先是 DOM 。
DOM
DOM 的全稱是 Document Object Model (文檔對象模型)。很簡單吧?它就是文檔對應的對象模型。
先暫時忘掉它的概念。我們先來看看大名鼎鼎的 “Web Browser” 工作室!你能在下麵的插圖中找到 DOM 嗎?

DOM 是一棵樹。奇怪的是,計算機相關的很多東西其實都像是一棵樹。
我們來給 DOM 起個昵稱……就叫 Domo 如何?Domo 是 “Web Browser” 工作室的禦用模特,他的工作就是在肖像畫家(也可能是數百萬個畫家)麵前擺 pose 。
肖像就是在瀏覽器中瀏覽網站時所看見的內容。開發者的職責就好比是導演,他來告訴 Domo 該穿什麼衣服,擺什麼 pose 。這將決定肖像最終畫出來的樣子。jQuery 和 React 都是庫,開發者使用它們作為與 Domo 交流的工具。
jQuery
jQuery 是一個 JavaScript 庫,它可以使開發者操縱 DOM 變得簡單得多。那他在 Domo 的故事中又扮演什麼角色呢?
它是一個工具,可以簡化開發者與 Domo 溝通的過程,就像是一部手機。無論何時何地都可以輕鬆呼叫 Domo 。相比於之前(使用原生 JavaScript),它要方便得多,還記得在電話發明出來之前人跟人連簡單交流都要走得足夠近才行。

多年以來,我們一直都在使用 jQuery 來直接與 Domo 溝通。是很方便,但並非沒有問題。
React
下麵登場的是一個新的超級英雄: React 。

使用 React 的話,開發者不再需要直接跟 Domo 溝通。React 扮演在開發者和 Domo 之間的中間人角色。他降低了兩者之間的溝通成本,同時簡化了肖像創建的過程。

React 使用了一些技術來解決 jQuery 和其他工具中所存在的問題。下麵是它的三項核心技術:
響應式 UI
虛擬 DOM
組件
響應式 UI
使用 jQuery 來更新 DOM 的話,你需要在適當的時機以正確的順序來指定要更改的元素。這等同於給 Domo 一步步講述頭怎麼擺、胳膊放在哪、腿什麼姿勢,等等,並且每張肖像都是如此。

我靠,這聽起來太乏味了,並且容易出錯!為什麼不直接告訴 Domo 你想要的效果,而不是現在這樣一步步地告訴他怎麼擺 pose ?

還有更酷的,想象一下如果可以在要求過程中保留一個占位符來表示相同姿勢的不同變體。React 就能做到!
這種方式的話,當畫家要求 Domo 穿戴不用的帽子作畫時,你不需要每次都告訴 Domo 戴哪頂帽子。你盡管坐在一旁讓他自己換帽子即可。

這項技術正是 React 名字的由來。使用 React 構建的 UI 是響應式的。作為開發者,你隻需編寫你想要的是什麼,React 自己會弄清楚該怎麼做。當數據變化時,UI 會相應地發生改變。你無需再關心 DOM 的更新,React 會自動幫你完成。響應式 UI 的理念大大地簡化了 UI 開發。
虛擬 DOM
jQuery 的另一個問題就是它的運行速度。
作為一個嚴苛的導演,你討厭等待。你想要肖像畫盡可能快地完成。但是,Domo 和畫家都比較慢,並非是樹瀨那種慢,隻是 Domo 需要時間來換裝和擺 pose ,並且畫家作畫也需要時間。
更糟糕的是,在畫家完成一幅肖像畫之前,你無法與 Domo 進行溝通。事實上,你什麼也做不了,除了等待。真浪費時間!

React 采用了另一項技術來解決此問題。React 畫草稿的速度超級快。是當你告訴他你的要求後,他幾乎就能立即將草稿完成並準備畫下一張。現在就無需等待了!你可以不停地告訴 React 你想的肖像。React 將會紀錄草稿的所有細節,並在適當的時候展示給 Domo 看。

更重要的一點是 React 十分聰明。他還會對所有草稿進行整理,拿掉重複的並確保 Domo 和畫家的工作量維持在最低水平。

這些草稿就是 “虛擬 DOM” 。虛擬 DOM 要比操縱 DOM 快得多得多。開發者絕大部分時間裏其實都是在操縱虛擬 DOM ,而不是直接操縱真實的 DOM 。React 負責管理 DOM 的這部分髒活。
組件
React 中第三項技術就是組件的概念。
組件應該很容易理解,因為我們所生活的現實世界就是由組件組成的。我們的車、房,甚至是身體都是由不同的組件所組合而成的。這些組件又是由一些更小的組件組合而成,以此類推,直至分解成原子。
如果你熟悉 Sketch (譯者注: 著名的設計軟件,與 PhotoShop 齊名) 的話,組件與 Sketch 中的 symbols 十分類似。構建 React 應用幾乎都是在同組件打交道: 尋找最適合的組件、融合兩個組件、在現有組件的基礎上創建新組件,等等。
回到 “Web Browser” 工作室,你將肖像的需求描述成一個個組件,React 將這些組件翻譯成 Domo 所能理解的內容。這將為你節省大量時間,因為你無需再一次次地重複描述需求中的通用部分。

組件另外很酷的一點是如果你改變了某個組件,那麼所有使用此組件的地方都將自動更新。

總結
好了。希望你能學會一些 React 的知識。本質上,它還是一個工具,用來幫助開發者操縱 DOM ,從而構建出頁麵。響應式 UI 、虛擬 DOM 和組件是 React 的三大核心概念,正是有了它們才使得 React 如此特別。當然,React 還有一些其他有趣的概念,比如單向數據流,小編以後在介紹。
作者:技術學派 來源:今日頭條
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答為給新片造勢,迪士尼這次豁出去了,拿出壓箱底的一眾經典IP,開啟了夢幻聯動朱迪和尼克奉命潛入偏遠地帶臥底調查 截至11月24日......
此前Q2問答環節,鄒濤曾將《解限機》首發失利歸結於“商業化保守”和“灰產猖獗”,導致預想設計與實際遊玩效果偏差大,且表示該遊戲......
2025 Google Play年度遊戲頒獎:洞察移動遊戲新趨勢
玩家無需四處收集實體卡,輕點屏幕就能開啟驚喜開包之旅,享受收集與對戰樂趣庫洛遊戲的《鳴潮》斬獲“最佳持續運營遊戲”大獎,這不僅......
說明:文中所有的配圖均來源於網絡 在人們的常規認知裏,遊戲引擎領域的兩大巨頭似乎更傾向於在各自賽道上激烈競爭,然而,隻要時間足......
在行政服務優化層麵,辦法提出壓縮國產網絡遊戲審核周期,在朝陽、海澱等重點區將審批納入綜合窗口;完善版權服務機製,將遊戲素材著作......
未畢業先就業、組團入職、紮堆拿offer...這種好事,再多來一打!
眾所周知,火星有完善的就業推薦服務圖為火星校園招聘會現場對火星同學們來說,金三銀四、金九銀十並不是找工作的唯一良機火星時代教育......
同學您好!