[React] contextAPI
context 顧名思義是框架、背景的意思,他會在背景中包裹住其他元件(components),讓其他元件可以使用儲存在裡面的變數,或著是說整個背景的狀態,而透過useState儲存的狀態,我們也可以將 setter 傳到其他被包裹的元件來改變狀態。
常見的 context 儲存的類型包括 light/dark theme、users,這次的範例就以切換 light/dark theme 為例,來介紹 contextAPI。
codesandbox: https://codesandbox.io/s/usecontext-hr5h4y?file=/src/contexts/ThemeContext.jsx
createContext
首先,先建立 contexts 的資料夾,裡面再建立ThemeContext.jsx的檔案。
createContext裡面的物件為變數的基本狀態,後面會透過ThemeContext.provider來改變
export const ThemeContext = createContext({
name: "",
setName: () => null,
theme: "light",
toggleTheme: () => null,
});
Context.Provider
ThemeContext是剛建立的基本 context,這邊我們建立ThemeProvider元件會回傳<ThemeContext.Provider>