如果你剛剛開啟web開發(fā)生涯的人生,并且已選擇使用
React,或者你正在考慮使用它,那么你可能會(huì)碰到很多問題。這里收集了一些關(guān)于 React 的常見問題,都關(guān)于 React
的各個(gè)方面。對React感興趣的同學(xué),可以報(bào)名參加Web前端培訓(xùn),可以在較短時(shí)間內(nèi)獲得很大提升。
1. 什么是反應(yīng)?
React 或 ReactJS,有時(shí)被稱為是一個(gè) Javascript 庫,用于為 Web
應(yīng)用程序和網(wǎng)站構(gòu)建交互式用戶界面,旨在最大限度地減少為 Web 應(yīng)用程序和網(wǎng)站創(chuàng)建用戶界面所花費(fèi)的時(shí)間和精力。該項(xiàng)目于 2013 年開源,現(xiàn)在由
Facebook 以及來自世界各地的個(gè)人開發(fā)人員和公司維護(hù)。
2. React 是框架還是庫?
第一點(diǎn)已經(jīng)說明了React 是一個(gè)庫,這里進(jìn)一步解釋為什么它是一個(gè)庫而不是一個(gè)框架。
框架和庫之間的一個(gè)關(guān)鍵區(qū)別是框架定義了代碼的結(jié)構(gòu)和架構(gòu)。它決定了你的應(yīng)用程序的開發(fā)方式。你可以將其視為房屋的模板。另一方面,庫更像是你可以添加到現(xiàn)有房屋中的家具和房屋配件。
庫是在開發(fā)過程中執(zhí)行常見重復(fù)功能的程序的集合。因此,就像家具一樣,你可以將庫添加到現(xiàn)有代碼庫中以供使用。這正是 React
的設(shè)計(jì)方式。它可用于為你的應(yīng)用程序創(chuàng)建 UI 組件或編輯以前使用 HTML 創(chuàng)建的 UI
組件。你定義你想如何使用它,這與框架的功能形成鮮明對比。在Web前端培訓(xùn)中,有很多關(guān)于React的學(xué)習(xí)課程,可以讓你快速掌握這門技術(shù)的使用,高效完成開發(fā)任務(wù)。
3. React 是由什么語言組成的?
React 是一個(gè) Javascript 庫,因此它是用 Javascript 制作的。要使用它,就要使用
Javascript?;蛘撸憧梢赃x擇使用 JSX 或 Javascript eXtension(一種 XML-Esque 語言)來構(gòu)建 UI 組件。 JSX
語法仍將轉(zhuǎn)換為等效的 Javascript,但它更容易編寫。
由于 React 的流行,幾乎所有轉(zhuǎn)換為 Javascript
的語言(Typescript、Flow、ReasonML、Clojurescript、Purescript 等)都有綁定。
4. 什么時(shí)候使用 React?
React 最初是由 Facebook 作為 Javascript 庫發(fā)布的,用于為 Web
構(gòu)建用戶界面。從那以后,它已經(jīng)超越了這一點(diǎn)。 2015 年,F(xiàn)acebook 發(fā)布了 React Native 一個(gè)跨平臺(tái)的移動(dòng)框架,它利用 React 為
Android 和 iOS 構(gòu)建用戶界面。
5. 是否需要額外設(shè)置?
設(shè)置 React 并不像啟動(dòng)一個(gè)設(shè)置文件那么簡單,它涉及很多過程,除了安裝 React
庫本身之外,你還需要安裝其他包和大量配置才能擁有完整的 React 開發(fā)環(huán)境。
需要安裝 webpack 和 babel 等包并配置它們以擁有完整的 React
開發(fā)環(huán)境。你可能可以跳過安裝這些包并在沒有它們的情況下開發(fā)簡單的項(xiàng)目,但對于較大的項(xiàng)目,你應(yīng)該安裝它們。想要學(xué)習(xí)React更多技能,可以報(bào)個(gè)Web前端培訓(xùn)班,有系統(tǒng)全面的課程和明確清晰的學(xué)習(xí)路線,讓學(xué)習(xí)更輕松更有效。
6. 可以添加到現(xiàn)有項(xiàng)目中嗎?
React 作為一個(gè)庫可以與現(xiàn)有項(xiàng)目一起使用。在你的系統(tǒng)上設(shè)置好之后,你需要做的就是將 react 和 react-dom
腳本標(biāo)簽添加到你現(xiàn)有的 HTML 代碼中,然后調(diào)用包含你使用腳本標(biāo)簽創(chuàng)建的組件的 Javascript 文件。然后你放置一個(gè) div 標(biāo)簽,將組件名稱作為它的
id,放在你想要放置 React 組件的地方,你就可以開始了。
7. React 是否支持漸進(jìn)式遷移?
React
的設(shè)計(jì)方式使其易于逐漸適應(yīng)。你可以只使用其中的一些功能,而將其他功能排除在外。隨著時(shí)間的推移,你可以在你的代碼庫中包含更多的 React 特性。像
Netlify 這樣的流行公司已經(jīng)成功地從其他 Javascript 庫/框架遷移到 React,這樣做是漸進(jìn)的。
8. 如何托管 React 應(yīng)用程序?
React 應(yīng)用程序可以像任何其他 Web 應(yīng)用程序一樣托管。你可以選擇很多選項(xiàng)。你可以在 Github
Pages、Netlify、Heroku 和許多其他網(wǎng)站上托管你的 React 應(yīng)用程序,盡管這些更適合靜態(tài)網(wǎng)站。對于動(dòng)態(tài)站點(diǎn),你可能需要考慮
AWS、Microsoft Azure 或 Google Cloud
等解決方案。想了解更多關(guān)于React的信息,不妨報(bào)名參加Web前端培訓(xùn),有理論和實(shí)踐項(xiàng)目一起學(xué)習(xí),學(xué)以致用,在項(xiàng)目中鍛煉自己的思維能力和動(dòng)手能力,獲得快速成長。
你還可以決定在托管之前使你的網(wǎng)站在服務(wù)器端呈現(xiàn)、客戶端呈現(xiàn)或預(yù)呈現(xiàn)。你的用例將確定這三個(gè)中的哪一個(gè)最適合你。 React
支持所有這三種渲染方法。 React 應(yīng)用程序默認(rèn)是客戶端渲染的。
但有時(shí),你可能需要一些服務(wù)器端渲染應(yīng)用程序帶來的優(yōu)勢,如 SEO
和感知性能。但是,如果你的大部分網(wǎng)頁只能在登錄頁面后訪問,那么服務(wù)器端應(yīng)用程序就不值得了。客戶端呈現(xiàn)的網(wǎng)站將更適合你的目的。
9. React開發(fā)者的體驗(yàn)是怎樣的?
總的來說,一旦你安裝了所有必要的包,使用 React
進(jìn)行開發(fā)是很容易的。但是你必須首先設(shè)置你的開發(fā)環(huán)境,這涉及安裝多個(gè)軟件包并進(jìn)行順利和無故障開發(fā)所需的配置。
要開發(fā) React 應(yīng)用程序,你需要使用 JSX 和 Javascript。如果你以前一直在開發(fā)網(wǎng)站,那么你會(huì)選擇
Javascript。另一方面,JSX 是特定于 React 的,需要一點(diǎn)時(shí)間來學(xué)習(xí)它。雖然它是可選的,但它使編寫 React
組件更容易。參加web前端培訓(xùn),有好的教學(xué)環(huán)境、系統(tǒng)規(guī)范的課程、主流軟件,不光可以擴(kuò)展你的技術(shù),同時(shí)緊貼就業(yè)市場需求設(shè)計(jì)。讓你學(xué)到的技能貼合就業(yè)市場,不怕面對就業(yè)競爭對手。
React 還支持充分利用 HMR(熱模塊重新加載),允許你即時(shí)更新應(yīng)用程序,而無需重新加載頁面。
10. React 生態(tài)系統(tǒng)是什么樣的?
有很多工具和庫可用于幫助你使用 React
進(jìn)行開發(fā)。有狀態(tài)管理工具、格式化、類型檢查、身份驗(yàn)證、測試等等。它們一起形成了一種框架,但具有更大的靈活性,因?yàn)槠渲幸恍┕ぞ呔哂卸鄠€(gè)選項(xiàng)。
11. React 的性能如何?
React 非??欤@是因?yàn)橐粋€(gè)主要原因,即虛擬 DOM。 DOM 或文檔對象模型是 HTML 代碼的表示。這就是讓
Javascript 能夠操作 HTML 元素的原因。它利用 DOM API 來實(shí)現(xiàn)這一點(diǎn)。不幸的是,由于現(xiàn)代網(wǎng)站的性質(zhì),操縱 DOM
可能會(huì)令人厭煩。
React 虛擬 DOM 是你與 React 交互的實(shí)際 DOM 的更簡單副本。它不會(huì)在每次狀態(tài)發(fā)生變化時(shí)重新加載整個(gè)
DOM,而是重新創(chuàng)建 React DOM 并使用差異算法將其與之前的版本進(jìn)行比較。然后它指示 DOM
僅重新加載受影響的區(qū)域。這顯著減少了更新頁面所需的時(shí)間。通過Web前端培訓(xùn)的學(xué)習(xí),你不僅能夠掌握React的技術(shù)應(yīng)用,也會(huì)對其底層原理有所了解,并通過實(shí)戰(zhàn)項(xiàng)目,具備獨(dú)立負(fù)責(zé)React
前端項(xiàng)目的能力。