- 取得連結
- X
- 電子郵件
- 其他應用程式
1. 介紹React
1.1 React是什麼?
React 是由 Facebook(現為 Meta)開發並於 2013 年開源的一個 JavaScript 前端函式庫,主要用於構建用戶界面(UI)。與傳統的網頁開發方法相比,React 提供了一種組件化開發的方式,使開發者可以將頁面拆分為獨立、可重用的組件,從而提高開發效率和可維護性。
1.2 為什麼選擇React?
與 Vue.js 和 Angular 等其他前端框架相比,React 具有以下優勢:
-
組件化開發:可重用的組件提高了代碼的可維護性和可讀性。
-
虛擬 DOM:React 使用虛擬 DOM 來優化渲染,提高應用性能。
-
靈活性:React 只關注 UI 層,可與不同的技術堆疊結合使用。
-
強大社群與生態系統:擁有豐富的開源庫和強大的社區支持。
2. React 的基礎概念
2.1 JSX:JavaScript 與 HTML 的結合
JSX(JavaScript XML)是 React 提供的語法擴展,允許開發者在 JavaScript 代碼中直接編寫類似 HTML 的標記,從而提高開發效率。例如:
const element = <h1>Hello, React!</h1>;
JSX 會在編譯過程中被轉換為 React.createElement()
調用,使其能夠被瀏覽器解析。
2.2 組件(Components)
React 的核心概念之一是 組件,分為函數式組件(Functional Components)和類別型組件(Class Components)。
函數式組件:
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
類別型組件:
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
2.3 React 的狀態管理(State Management)
React 的 state
用於管理組件內部的數據變化。例如,使用 useState
管理狀態:
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
點擊次數:{count}
</button>
);
}
2.4 生命週期方法(Component Lifecycle)
React 組件的生命週期可分為三個階段:
-
掛載(Mounting):
componentDidMount()
-
更新(Updating):
componentDidUpdate()
-
卸載(Unmounting):
componentWillUnmount()
React Hooks 提供了 useEffect
來管理副作用,例如:
useEffect(() => {
console.log('組件加載完成');
return () => console.log('組件卸載');
}, []);
3. 建立第一個 React 應用
3.1 安裝與設定開發環境
安裝 Node.js 後,可以使用 Create React App 快速建立專案:
npx create-react-app my-app
cd my-app
npm start
3.2 React 應用的基本結構
React 應用的主要文件包括:
-
index.js:應用的入口文件
-
App.js:主組件
3.3 事件處理與條件渲染
React 事件處理類似於 HTML 事件,但需使用 onClick
等 JSX 屬性。例如:
<button onClick={() => alert('Hello React!')}>點擊我</button>
條件渲染可以使用三元運算符:
{isLoggedIn ? <h1>歡迎回來</h1> : <h1>請登入</h1>}
4. React 應用的路由管理
4.1 什麼是單頁應用(SPA)?
SPA 是指單頁應用,所有頁面內容都在同一個 HTML 文件內動態加載,提高用戶體驗。
4.2 React Router 的基本使用
安裝 React Router:
npm install react-router-dom
基本用法:
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
function App() {
return (
<Router>
<nav>
<Link to="/">首頁</Link>
<Link to="/about">關於</Link>
</nav>
<Route path="/" exact component={Home} />
<Route path="/about" component={About} />
</Router>
);
}
5. 進階 React 功能
5.1 使用 React Hooks 提升開發效率
-
useState
管理狀態 -
useEffect
處理副作用 -
useContext
簡化狀態管理
5.2 組件的狀態提升與 Prop Drilling
狀態提升(State Lifting)可以讓父組件管理子組件的狀態,以避免深層傳遞。
5.3 使用 Redux 進行全局狀態管理
Redux 允許在應用中存儲和管理全局狀態。安裝 Redux:
npm install redux react-redux
6. 建立動態單頁應用(SPA)實戰專案
6.1 設計應用結構與路由
建立多個頁面組件,如首頁(Home)、產品列表(Products)等,並使用 React Router 進行導航。
6.2 透過 API 獲取與管理數據
使用 fetch
或 axios
從 API 獲取數據:
useEffect(() => {
fetch('https://api.example.com/products')
.then(response => response.json())
.then(data => setProducts(data));
}, []);
6.3 動態渲染與使用者互動
例如表單輸入驗證:
<input type="text" value={name} onChange={e => setName(e.target.value)} />
7. React 應用的最佳實踐與優化
7.1 提升效能與最佳化策略
-
代碼分割(Code Splitting):使用 React.lazy()
-
減少不必要的重新渲染:使用
React.memo()
7.2 React 應用的測試
使用 Jest 和 React Testing Library 進行單元測試。
7.3 部署 React 應用
使用 Vercel、Netlify 或 GitHub Pages 部署。
8. 總結與下一步學習方向
掌握 React 基礎後,可以進一步學習 Next.js(伺服端渲染)、React Native(開發移動應用)等進階技術。
留言
發佈留言