【React 學習筆記 EP.20】useContext

更新 發佈閱讀 3 分鐘

什麼是 useContext?

useContext 是 React 提供的一個 Hook,讓你可以跨層級傳遞資料,而不用一層一層手動傳 props。

useContext 概念

  1. createContext:建立一個「廣播頻道」,定義你要共享的資料容器。
  2. Provider:頻道的「發送端」,負責把資料廣播出去,所有被它包住的子元件都能收聽。
  3. useContext:頻道的「接收器」,讓子元件直接取用 Provider 提供的資料。

useContext 語法

  1. React.createContext(defaultValue):建立 Context 物件;defaultValue 是找不到 Provider 時的預設值。
  2. MyContext.Provider:包住需要接收資料的子元件。
  3. value:你要廣播出去的資料內容。
  4. useContext(MyContext):傳入 Context 物件,回傳 Provider 中 value 的值。
import React, { createContext, useContext } from "react";

// 建立一個「主題色」的廣播頻道
const ThemeContext = createContext("light");

function DisplayTheme() {
const theme = useContext(ThemeContext); // 接收廣播的主題色
return <p>目前主題:{theme}</p>; // 顯示接收到的值
}

export default function App() {
return (
// Provider 廣播 "dark" 給所有子元件
<ThemeContext.Provider value="dark">
<DisplayTheme />
</ThemeContext.Provider>
);
}
留言
avatar-img
梧笙 WuSheng 的沙龍
67會員
57內容數
⛰️ 梧笙,意即「吾生」,我是一個平凡的理工宅男。 生活離不開 Code 與 Game,這裡主要紀錄與分享: 📖 學習筆記|紀錄我學習過的電腦技能與知識。 💻 科技新知|整理實用工具與科技領域的資訊。 🎮 電玩娛樂|聊聊遊戲動漫與實況直播的話題。 目前更新頻率不固定,有興趣歡迎追蹤。
2026/05/07
Custom Hooks 就是你自己寫的、可重複使用的功能模組,把常用的邏輯打包起來,讓不同的元件都能共享。
2026/05/07
Custom Hooks 就是你自己寫的、可重複使用的功能模組,把常用的邏輯打包起來,讓不同的元件都能共享。
2026/05/06
useRef 是 React 提供的一個 Hook,讓你可以保存一個不會觸發畫面重新渲染的值。useRef 概念,不觸發重新渲染:和 useState 不同,修改 useRef 的值不會讓元件重新渲染。
2026/05/06
useRef 是 React 提供的一個 Hook,讓你可以保存一個不會觸發畫面重新渲染的值。useRef 概念,不觸發重新渲染:和 useState 不同,修改 useRef 的值不會讓元件重新渲染。
2026/05/06
巢狀路由就是在一個路由裡面,再放入子路由。想像你打開「設定」頁面,左邊選單不變,右邊內容根據你點的選項切換,外層不動,只有內部區塊在變化,這就是巢狀路由。
2026/05/06
巢狀路由就是在一個路由裡面,再放入子路由。想像你打開「設定」頁面,左邊選單不變,右邊內容根據你點的選項切換,外層不動,只有內部區塊在變化,這就是巢狀路由。
看更多
你可能也想看
Thumbnail
這集跟大家初步介紹Next.js和如何安裝與設置最後製作一個作品集(Portfolio) 如果對設計有興趣的朋友們可以看以下連結文章來學習Figma設計軟件 https://vocus.cc/article/645c733dfd89780001ffe890
Thumbnail
這集跟大家初步介紹Next.js和如何安裝與設置最後製作一個作品集(Portfolio) 如果對設計有興趣的朋友們可以看以下連結文章來學習Figma設計軟件 https://vocus.cc/article/645c733dfd89780001ffe890
Thumbnail
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
React.js 是一個熱門的library,JayLin今天講解React核心概念以及利用一個小案例概括理論部分
Thumbnail
React.js 是一個熱門的library,JayLin今天講解React核心概念以及利用一個小案例概括理論部分
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
這集介紹Next Image Module模組和CSS3如何定位在Next.js Framework
Thumbnail
這集介紹Next Image Module模組和CSS3如何定位在Next.js Framework
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
useEffect 是 React 的一個 Hook,它告訴 React 在以下情況下執行某些代碼。 透過本章的學習,你將能夠 熟練使用 useEffect() 處理 React 副作用,並掌握 最佳實務,確保 React 應用運行順暢、效能最佳!
Thumbnail
useEffect 是 React 的一個 Hook,它告訴 React 在以下情況下執行某些代碼。 透過本章的學習,你將能夠 熟練使用 useEffect() 處理 React 副作用,並掌握 最佳實務,確保 React 應用運行順暢、效能最佳!
Thumbnail
動態導覽列為增加使用者經驗UX,要如何在Tailwind CSS上實現呢?這次JayLin來帶大家做一個動態導覽列(Animation Navigation)
Thumbnail
動態導覽列為增加使用者經驗UX,要如何在Tailwind CSS上實現呢?這次JayLin來帶大家做一個動態導覽列(Animation Navigation)
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
Todo App是一個很好學習程式語言的專案開始,JayLin來帶大家手把手用TypeScript | React | TailwildCSS 來做一個小專案
Thumbnail
Todo App是一個很好學習程式語言的專案開始,JayLin來帶大家手把手用TypeScript | React | TailwildCSS 來做一個小專案
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News