【React 學習筆記 EP.03】Components 元件

更新 發佈閱讀 4 分鐘

什麼是元件?

元件 (Components) 是將使用者介面拆解成獨立、可重用的程式碼區塊,透過組合多個元件,開發者能像堆疊樂高積木一樣,快速建構出複雜且易於維護的網頁介面。

元件基礎語法

  1. 函式定義:使用函式宣告元件,名稱必須首字大寫以區別原生 HTML 標籤。
  2. JSX 語法:在 JavaScript 中撰寫類 HTML 的標籤語法,用來描述畫面結構與樣式。
  3. 屬性 (Props):父元件傳遞給子元件的參數,類似函式的引數,確保單向資料流。
  4. 渲染 (Rendering):元件必須使用 return 回傳 UI 結構,若涉及邏輯運算需寫在 return 之前。
  5. 模組匯出:使用 export default 將元件公開,以便其他檔案 import 使用。

常見錯誤與解決方法

  1. React 會將小寫開頭的標籤視為原生 HTML,建議將元件名稱改為大寫開頭,例如:MyButton
  2. {} 中撰寫 iffor 等陳述式導致報錯,建議改用三元運算子或 map()
// 定義子元件:接收 props 參數
// 負責顯示單一使用者的資訊卡片
const UserCard = ({ name, role, isActive }) => {
// 定義卡片樣式物件
const cardStyle = {
border: '1px solid #ddd',
padding: '16px',
borderRadius: '8px',
backgroundColor: isActive ? '#f0f9ff' : '#f5f5f5' // 依狀態改變背景色
};

// 回傳 JSX 結構
return (
<div style={cardStyle}>
{/* 使用 {} 嵌入變數值 */}
<h3>姓名:{name}</h3>
<p>職位:{role}</p>
{/* 條件渲染:若 isActive 為 true 則顯示標籤 */}
{isActive && <span>✅ 本月最佳員工</span>}
</div>
);
};

// 匯出元件供其他檔案使用
export default UserCard;
import UserCard from '../src/components/UserCard'
import './App.css'

// 定義父元件:應用程式的主入口
const App = () => {
// 回傳主畫面結構
return (
<div style={{ padding: '20px' }}>
<h1>員工列表</h1>

{/* 呼叫並重複使用 UserCard 元件 */}
{/* 傳遞 props:name 為字串, isActive 為布林值 */}
<UserCard
name="王小明"
role="前端工程師"
isActive={true}
/>
<br />
{/* 再次呼叫元件,傳入不同資料 */}
<UserCard
name="李大華"
role="後端架構師"
isActive={false}
/>
</div>
);
};

export default App;



留言
avatar-img
梧笙 WuSheng 的沙龍
67會員
33內容數
⛰️ 梧笙,意即「吾生」,我是一個平凡的理工宅男。 生活離不開 Code 與 Game,這裡主要紀錄與分享: 📖 學習筆記|紀錄我學習過的電腦技能與知識。 💻 科技新知|整理實用工具與科技領域的資訊。 🎮 電玩娛樂|聊聊遊戲動漫與實況直播的話題。 目前更新頻率不固定,有興趣歡迎追蹤。
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
useEffect 是 React 的一個 Hook,它告訴 React 在以下情況下執行某些代碼。 透過本章的學習,你將能夠 熟練使用 useEffect() 處理 React 副作用,並掌握 最佳實務,確保 React 應用運行順暢、效能最佳!
Thumbnail
useEffect 是 React 的一個 Hook,它告訴 React 在以下情況下執行某些代碼。 透過本章的學習,你將能夠 熟練使用 useEffect() 處理 React 副作用,並掌握 最佳實務,確保 React 應用運行順暢、效能最佳!
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
React Marquee是一個輕量級的React library,可以在網頁上創建流暢的跑馬燈效果。本文提供快速教學和講解,教大家如何安裝、使用React跑馬燈library官方網站。另外,也分享了額外的資源和相關教學文章。希望透過以上講解和影片教學,能幫助大家瞭解這個library。
Thumbnail
React Marquee是一個輕量級的React library,可以在網頁上創建流暢的跑馬燈效果。本文提供快速教學和講解,教大家如何安裝、使用React跑馬燈library官方網站。另外,也分享了額外的資源和相關教學文章。希望透過以上講解和影片教學,能幫助大家瞭解這個library。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News