React 是什麼?2025 完整新手學習指南

亚洲365 2026-01-30 05:10:12 admin

React 是當今前端開發中最熱門的技術之一,不管你想要轉職前端,還是後端想做 Side Project,甚至是想利用 AI 來打造自己的網頁 App,理解 React 的基礎概念與環境設置都是入門的第一步。

本篇文章將帶你認識什麼是 React、它的特色與優勢,以及如何設置開發環境,幫助你快速開始你的 React 學習之旅。

想提升技術但沒有方向?

如果你希望在接下來一年:

➊ 有計劃地變強,停止自我懷疑

➋ 把學到的技術變成履歷亮點

➌ 成為團隊中前 10% 的工程師

我會帶你用 2.5 小時,

打造接下來 12 個月的技術成長攻略

免費報名體驗課

什麼是 React?React 是一個由 Facebook 開發的開源 JavaScript 函式庫,專為構建高效、可維護的用戶界面(UI)而設計。它特別適合用於開發單頁應用(Single Page Applications, SPA),讓使用者不需要刷新頁面並享受更流暢的使用體驗。

雖然官方聲稱 React 是一個函式庫,但 React 的生態完整性,說他是一個框架也不為過。

延伸閱讀:框架和函式庫的差別?

React 的核心理念是「組件化」。它將複雜的頁面拆解成一個個獨立的、可重複使用的組件,每個組件負責自身的邏輯和渲染。當數據發生變化時,React 會通過「虛擬 DOM(Virtual DOM)」來更有效率的更新頁面,減少直接操作真實 DOM 的開銷,進而提升性能。

簡單來說,React 讓你可以用更直觀、更模組化的方式開發前端應用,特別適合那些需要頻繁更新的動態網站。

為甚麼我們要學習 React?接著讓我們從技術層面和現實層面來討論為甚麼要學 React。

簡化開發流程在過去,使用原生 JavaScript 開發大型 web 應用是一件非常困難的事情,除了一堆商業、UI、功能的邏輯交雜在一起,我們還需樣管理成百上千個 DOM 元素、處理大量狀態、實現可重用 UI 組件或特效等等問題,很容易讓程式碼變得冗餘、難以維護。

而 React 前端框架的出現解決了這些痛點。它提出了一種全新的構建用戶界面 (UI) 的方式,也改變了前端開發的環境。

學習 React 並不是為了替代原生 JavaScript,而是為了在一定層面上簡化和提高大型應用的開發效率。而 React 的設計思想也能幫助我們構建優雅、高效、可擴展的前端應用,並且這些思想也能夠讓我們在軟體領域走的更深更遠。

更好的工作機會因為 React 提高了前端的開發效率,越來越多公司拋棄 JQuery 並選擇 React,也因此豐富了 React 的生態系統,有龐大的開發者社群,提供很多封裝好的工具或函式庫、UI 庫,並也提供更多的工作機會。

也因此,不管是為了更快的開發還是找工作,或是培養更深度的程式設計思想,學習前端框架是必要的路程之一。

延伸閱讀:

2025 前端框架怎麼選?React、Vue、Angular 完整比較指南

React 的特色React 之所以受到廣泛歡迎,除了背靠大公司 Facebook 以外,它獨特的設計與功能也受到開發者的支持和青睞。下面我就舉出 React 的 5 大特色:

組件化開發:React 鼓勵將 UI 分解為獨立的組件,例如按鈕、表單或導航欄。這些組件可以獨立開發、測試和重用,大幅提升程式碼的可維護性。再也不用每個地方都寫一樣的程式碼。虛擬 DOM:React 利用虛擬 DOM 來優化頁面的更新。每次數據變化時,React 會先計算出需要更新的部分,再一次性更新到真實 DOM,避免不必要的重繪與重排,提升渲染的效率。單向數據流:在 React 中,數據從父組件單向流向子組件,這種設計讓數據的流向更清晰且可預測,減少了因數據混亂導致的 bug。JSX 語法:React 引入 JSX,一種結合 JavaScript 和 HTML 的語法,讓開發者能以更直觀的方式撰寫組件。豐富的生態系統:React 擁有強大的社區和生態支持,我們能夠結合像 React Router(路由管理)、Redux(狀態管理)等第三方函式庫,讓我們能輕鬆地去構建更複雜的應用。跨平台的開發:除了 Web 開發以外,還能搭配 React Native 來開發行動應用程式,也就是說只要學會 React,就能同時開發網頁和手機。簡單說,React 能夠在眾多框架中脫穎而出,這是因為其高性能、組件靈活性,以及背靠大公司和強大的生態系統。

延伸閱讀:

React 常用的 JSX 渲染方法 - 條件渲染、渲染列表

學習 React 前,你應該具備的知識在學習 React 前,你需要掌握一些基礎知識,因為 React 是建立在這些知識上的前端框架,如果你是第一次接觸網頁的新手,可以先從 W3Schools 開始學習基礎知識~以下是學習 React 前應具備的技能

HTML/CSS理解網頁的基本結構(如標籤、屬性)和樣式(如選擇器、盒模型),這些是構建網頁 UI 的基礎。JavaScript掌握 JS 的核心概念,包括變數、函式、物件、陣列、事件處理等。React 的邏輯幾乎都用 JS 實現,因此這部分至關重要。ES6(建議)熟悉 ES6 的新語法,例如箭頭函式(=>)、解構賦值({a, b} = obj)、模組導入(import),這些在 React 中非常常見。雖然不是必須,但能讓你的代碼更簡潔高效。有了這些基礎,你就可以更輕鬆地進入 React 的學習。

React 和原生 JS 的差別React 與原生 JavaScript 在開發方式上有很大的不同,

組件化 vs 傳統 DOM 操作:原生 JS 通常直接操作 DOM(例如 document.getElementById),更新頁面時需要手動修改。React 則透過組件和虛擬 DOM 管理更新,自動完成渲染。原生 JS 就像一個很笨的建築工人,你必須告訴他要"如何做 (如何操作 DOM)”,他才會做出網頁;而 React、Vue 就像是聰明的建築工人,你只需要告訴他 "你想要的樣子”,他就會自動幫你搞定網頁操作 DOM 的細節。聲明式 Declarative vs 命令式 imperative:React 採用聲明式編程,你只需描述 UI 應該長什麼樣子,React 會負責實現更新;而原生 JS 是命令式編程,需要明確告訴瀏覽器每一步該做什麼。關於聲明式和命令式的差別,可以參考這篇文章可維護性:React 的組件化設計可以讓程式碼的結構更清晰,且易於維護和擴展。原生 JS 在大型專案中很容易就變得雜亂,當專案越大,維護成本也會越高。單向數據流:在 React 中,資料只能從上往下傳遞,可以把資料想像成河水,它只能從上游(資料來源)流向下游(使用者介面),不能反向回去或橫流叉流,這樣的好處是我們可以更好的管控資料。學習曲線:原生 JS 入門雖然簡單,但在大規模應用中需要更多程式碼來實現複雜功能。反之,React 初期需要學習新概念(如 JSX、組件),但掌握後能顯著提升開發效率。了解了 React 的角色以及為何要學 React 後,下一步就是要來設置能寫 React 的環境。延伸閱讀:

虛擬 DOM 是什麼?(Virtual DOM)

React 環境設置 - 安裝 Node.js 與 Terminal大致了解 React 後,我們就可以來建置 React 環境了,設置 React 環境的步驟不會很難,只要照著以下的步驟就能順利完成,步驟只有 2 步,分為:

下載並安裝 Node.js使用 Terminal 建置 React 環境接著就可以運行 React 開始寫程式了,沒錯就這麼簡單~

下載並安裝 Node.js到 Node.js 的官網,點擊畫面中的 Download Node.js,下載完後行安裝即可。

安裝過程基本上就是一直按“繼續”就好,不需要額外什麼設定。

等他安裝完後這一部就完成了,我們可以在終端機中輸入 node -v 和 npm -v 確認 Node.js 和 npm 已正確安裝。

如果你是 Mac 用戶,推薦你使用 Warp 這個終端機,而如果你是 windows 用戶,可以使用 windows terminal,下載後打開即可在裡面輸入下面的指令,來檢查是否有正確安裝:

node -v

npm -v如果正確安裝,他會顯示你的 node 和 npm 版本。

當然,你也可以直接使用 vs code 內建的 terminal 來執行命令,只要按 ctrl + ` 就可以打開並輸入命令。

安裝完 Node.js 後,接著就可以來建置 React 環境了。

建置 React 環境通常有兩種方法可以建置 React:

使用 create-react-app 指令 (官方已經不推薦使用這個了)使用 vite 工具 (推薦)第一種是官方的指令,第二個則是使用現在更流行的工具來更快建置 React 專案,兩個各有優缺點,但現在只是要練習,推薦直接使用第二種更快速的方式

使用 Create React App 建置 React 環境1. 全局安裝 Create React App:在終端機中執行以下命令:-g 的意思是 global,也就是在電腦上安裝這個指令。

npm install -g create-react-app2. 建立新的 React 專案:接著使用指令創建你的 react app

create-react-app your-app-name3. 進入專案目錄:利用 cd 指令移動到你的 react app 目錄

cd your-app-name4. 啟動開發伺服器:

npm start接下來來看用 vite 的方式~

使用 Vite 建置 React 環境。使用 vite 建置 React 的方法簡單一點,步驟是:

1. 使用 Vite 建立新的 React 專案: 在終端機中執行以下命令:

npm create vite@latest my-app --template react2. 進入專案目錄:

cd my-app3. 安裝相依性:

npm install4. 啟動開發伺服器:

npm run dev到這邊就建置完成了,非常簡單吧!

文件檔案目錄結構當你用 cli 快速建立出來專案後,新手可能會看到裡面有一堆資料夾,不知道從哪裡下手,這邊也簡單介紹一下每個目錄裡面是幹嘛的:

my-app/

├── node_modules/ # 套件資料夾

├── public/ # 靜態資源

├── src/ # 主要的 React 檔案

│ ├── App.js # 主要的 React 組件

│ ├── index.js # 程式進入點

│ ├── components/ # 可存放額外的組件

├── package.json # 專案資訊與依賴

├── README.md # 項目說明文件

└── ...node_modules/:相關的依賴React 基礎概念public/:存放靜態文件,例如 SVG、字體、圖片等等。src/:你的主要工作區,像是自定義的 React 組件、程式邏輯都放在這裡。package.json:專案的資訊和依賴的程式庫。有時候我們也會新增 style/ 資料夾來放相關的樣式,或是 lib/ 資料夾放其他輔助的程式邏輯。

補充

在網路上會看到有些教學使用 CDN 來引入 React 使用,或是使用線上編輯器,例如 codepen 或 CodeSandbox 來使用 React,這些方法都可以用來練習 React,但要製作自己的專案,還是必須用前面提到到的兩個方法喔!

React 必學 5 個重要觀念當我們建置完環境,準備正式進入 React 之前,要先來說說 React 幾個很重要觀念,這些觀念可以說是適用於整個前端生態包括其它框架,很多新手在接觸 React 或其它框架時,會覺得很不習慣或不好上手,有很大一部份就是因為沒有先建立這些的觀念,所以我會建議先花一點時間理解一下這 5 個重要觀念喔!分別是:

JSX 語法組件 Components屬性 Props狀態 State鈎子 HooksJSX 語法JSX 是 React 很重要也很基本的語法,他就像是在 JS 裡寫 HTML,這邊做個簡單的示範,我們先宣告一個變數 title,並且給他一個

的值,就像下面這樣,是不是蠻像在 JS 裡寫 HTML 的呢?

const title =

Hello, world!

JSX 語法的強大之處在於,我們可以用花括號 {} 來搭配其他 JavaScript 的變數,比如我們希望 title 可以重複使用,能夠給他不同的 message 來顯示不同的標題。

我們就能像下面這樣把 { message } 放到 title 中:這就是 JSX 的好處。

const message = 'Hello, World!'

const title =

{ message }

//

Hello, world!

更進階的用法,可以搭配 template literals 樣板字面值 來使用,例如:

const message = 'Hello, World!'

const title =

{ `This is my message: "${message}"`}

//

This is my message: "Hello, world!"

當然我們也可以添加 HTML 的屬性在 JSX 裡,利如 class、id、data-* 等等常見的 HTML 屬性,但要注意的是,因為我們是在 JS 裡,所以有些語法會和在 HTML 裡不太一樣。

1. className : 在 JSX 裡如果要寫 class,必須要寫成 className

const title =

{ message }

// 錯誤

const title =

{ message }

// 正確這是因為在 JS 中,已經有 class 這個關鍵字了,所以要用 className 代替。

2. 駝峰式命名 (camel) : 在 JSX 中,屬性的名稱要用駝峰式命名代替

const title =

alert('hello')}>{ message }

// 錯誤

const title =

alert('hello')}>{ message }

// 正確比如說,點擊事件是 onclick,但在 JSX 裡就要用 onClick( C 是大寫!)

但 aria-* 和 data-* 就不需要,因為中間已經有 - 連接了。

補充:其實 JSX 在最後也會被轉譯成 JS 格式,例如

const message = 'Hello, World!';

const element =

{message}

;

// 變成

const message = 'Hello, World!';

const element = React.createElement('h1', null, message);這個轉換過程是由 Babel 等工具完成的,我們現在不太需要關心具體的實現。

組件 Component第二個重要的觀念是 Component 組件(有些人也稱為元件)可以想像一個頁面是好幾個組件所組成的,像是一般的網站可能會有 Header 組件、Button 組件、Footer 組件 ... 等等。每個組件都擁有自己的結構、樣式、行為邏輯。

以往我們用原生 JS,如果網頁上有很多個類似的按鈕,我們可能會重複寫非常多類似的邏輯或樣式:

每個 button 又要寫額外的 style 或事件邏輯,這會讓網站難以維護。

所以組件的好處就是可以讓我們重複使用相同的結構,而在 React 裡,一切皆是函數,一個函數就代表一個組件。

舉個簡單例子,我們可以創建一個 Button 函數組件,並且將 JSX 用 括號 () 括起來:

function Button() {

return (

);

}Button 函數返回的值就是上面提到的 JSX 。要注意的有三件事情

如果 return 的 JSX 超過一行,就要用 () 括起來組件的名稱開頭一定要是大寫,這是為了讓 React 區別是一般 HTML tag 還是我們自訂的組件我們一次只能返回一個父元素,如果超過兩個父元素像這樣:// 錯誤

function Button() {

return (

);

}我們要用一個更大的父元素將其包起來:

// 正確

function Button() {

return (

);

}在 React 中,我們也可以用一個空的 tag <> 來包住子元素,這個在 React 裡稱為 Fragment 組件,空 tag 是 Fragment 組件的簡寫。

// 正確

function Button() {

return (

<>

);

}建立好 Button 組件後,我們就可以在需要的地方直接使用

);

}這個 Button 組件接收三個屬性參數: color 、 text 和 onClick。當我們使用這個組件時,只需要傳入不同的屬性值,就能夠快速打造多個有相同架構的按鈕:

);

}現在我們已經能在網站的每個地方重複使用這個 Button 了!

不過現在有個新的需求,PM 希望用戶點擊按鈕之後,可以更改按鈕的文字,我們該怎麼做呢?這就要提到狀態 state。

狀態 State狀態(state) 和屬性(props) 是新手很容易搞混的地方!

每個組件都可以有自己的狀態,當狀態更新的時候,畫面就會跟著更新,如果我們想在 React 中使用狀態,需要使用 useState,就像這樣:

const [myText, setMyText] = useState(props.text)

需要傳入一個初始值,如果想要改變狀態的值,只能用setState 來改變來告訴 React 說要更新畫面,所以我們可以這樣改寫 Button 組件:

function Button(props) {

const [myText, setMyText] = useState(props.text) // 這是在 React 中宣告 state 的語法

const changeText = () => {

setMyText('你點擊我了!') // 並且我們只能用 set... 來更改 state

}

return (

onClick={changeText}

style={{backgroundColor: props.color}}>

{myText}

);

}上面程式碼解釋是:

useState 創建一個狀態變量 myText 和一個用來更新這個狀態的函式 setMyText。定義了一個名為 changeText 的函式,當調用這個函式時,它會使用 setMyText 函式來更新 myText 狀態的值為"你點擊我了!"最後,組件返回了一個 JSX 表示的 button 元素。這個按鈕被設置了一個點擊事件處理器,當按鈕被點擊時會調用 changeText 函式,從而更新按鈕上顯示的文字。利用狀態,就能告訴 React 說要更新畫面了!

延伸閱讀:

React useState 2025 詳細教學

鉤子 HooksReact 的另一個強大特色就是「Hooks」,它可以讓我們在組件中使用各種 React 功能的機制。

事實上,useState 就是第一個你接觸到的 Hook,而 Hooks 的世界遠不止這樣。

你可以把 Hook 想像成模組,而 React 組件是一台機器(比如一台桌上型電腦),這個機器一開始只能做一些很基礎的事情,比如顯示畫面(return JSX)。

但我們總是會有一些額外需求,比如記錄狀態(用戶點了幾次按鈕)、在頁面載入時做些事情(發 API)、操作某個元素(聚焦輸入框)等等。

這時候你會想:「我要怎麼做這些額外的功能?」

Hooks 就是提供額外功能的模組,他可以很輕鬆地引入做使用,像是useState 讓我們引入「狀態模組」,能根據狀態改變畫面。

這個設計的厲害之處在於:你原本只是一個單純的函數,透過 Hook,一個個裝進去,就有了狀態、有了生命週期、有了更多互動能力。

5 大觀念小總結以上就是對 React 基礎概念的詳細解釋,希望通過案例和比喻,能讓你對 JSX、組件、props、state 核心理念有初步的理解。

最後簡單總結這個篇幅的重點:

JSX : 類似在 JS 裡寫 HTML,可以用 {} 來結合 JS 的語法。組件化:React 中每個組件都是一個函數,且返回 JSX屬性:傳入參數當作組件的屬性,可以更好操控利用組件狀態:每個組件都有自己的狀態,只有狀態改變,UI 才會改變,且要使用 React 的 useState 才能宣告狀態。鈎子:讓一般的函數組件具有更多功能的模組。開始你的 React 之旅吧!看到這邊,相信你對 React 已經有一個基本的認識,如果你已經下定決心學習 React 了,這邊也推薦幾個很不錯的資源,讓你能快速開始學習:

React 官方的英文教學React 官方的中文教學 - 建議搭配英文教學一起看,了解常見名詞的中文2 小時 React 快速入門 - 如果你喜歡看影片學習,這個是很不錯的 YT 教學你可能會感興趣的文章 👇什麼是 Middleware?Next.js 實戰 Middleware 教學React Server Action 的全面講解useMemo 教學 - React 的記憶化函數useRef 教學 - React 存取 DOM 與保持資料一致的 Hook