
๐ ์ฐธ๊ณ ์์ :
์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ
๐ผ ์ฐธ๊ณ ๊ฐ์:
์ํ์ฝ๋ฉ- React context API
๐ ์งํ
chapter 14 Context โ
14.์ปจํ ์คํธ
์ปจํ ์ค
์ปดํฌ๋ํธ๋ค ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ props๋ฅผ ํตํด ์ ๋ฌํ๋๊ฒ์ด ์๋ ์ปดํฌ๋ํธ ํธ๋ฆฌ๋ฅผ ํตํด ๊ณง๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์
์ด๋ค ์ปดํฌ๋ํธ๋ ์ง ์ปจํ ์คํธ์ ์๋ ๋ฐ์ดํฐ์ ์ฝ๊ฒ ์ ๊ทผ ๊ฐ๋ฅ
-์ธ์ ์ฌ์ฉํ๋์?
์ฌ๋ฌ ์ปดํฌ๋ํธ๋ค์ด ๊ณ์ํด์ ์ ๊ทผ์ด ์ผ์ด๋ ์ ์๋ ๋ฐ์ดํฐ๋ค์ด ์๋ ๊ฒฝ์ฐ(๋ก๊ทธ์ธ,ํ๋ฉด๋ฐ๊ธฐ)
provider์ ๋ชจ๋ ํ์ ์ปดํฌ๋ํธ๊ฐ ์ผ๋ง๋ ๊น์ด ์์นํด ์๋์ง ๊ด๊ณ์์ด ์ปจํ ์คํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ค
Context API
์ ์ญ์ ์ผ๋ก ์ํ๋ฅผ ๊ณต์ ํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ
useContext(๋ด๊ฐ ์ด๋ค ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ ๊ฑด์ง)
์ ์ญ์ ์ผ๋ก ์ํ๋ฅผ ๊ณต์ ํ ์ ์๋ค.
์ํ๋ ๊ณณ์ ์ํ๋ฅผ ๋ฐ๊ฟ ํ์์ ๊ฐํธํ๊ฒ ์ํ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค.
์ค์ต์ฝ๋
import React,{createContext,useContext} from "react";
import './style.css';
const themeDeafault={border:'10px solid pink'};
const ThemeContext = createContext(themeDeafault);
//
export default function ContextAPI(){
const theme=useContext(ThemeContext);
return(
<ThemeContext.Provider vlaue={{border:'10px solid black'}}>
<div className="root" style={theme}>
<h1>
Hello React
<Sub1/>
</h1>
</div>
</ThemeContext.Provider>
);
}
function Sub1(){
//๋ถ๋ชจ์ค ๊ฐ์ฅ ๋จผ์ ๋ฑ์ฅํ๋ value๊ฐ์ ๊ฐ๋๋ค
const theme=useContext(ThemeContext);
return(
<ThemeContext.Provider value={{border:'10px solid green'}}>
<div style={theme}>
<h1 >sub1
</h1>
<Sub2/>
</div>
</ThemeContext.Provider>
);
}
function Sub2(){
const theme=useContext(ThemeContext);
return(
<div style={theme}>
<h1>sub2
</h1>
<Sub3/>
</div>
);
}
function Sub3(){
const theme=useContext(ThemeContext);
return(
<div style={theme}>
<h1>sub3</h1>
</div>
);
}
'๊ณต๋ถ ๊ธฐ๋ก โ๏ธ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [React] study (์กฐ๊ฑด๋ถ๋ ๋๋ง) #4์ผ์ฐจ (0) | 2023.04.13 |
|---|---|
| [React] study (state,) #3์ผ์ฐจ (0) | 2023.04.12 |
| [React] study (JSX,์๋ฆฌ๋จผํธ) #2์ผ์ฐจ (0) | 2023.04.11 |
| [React] study (๋ฆฌ์กํธ ์์ํ๊ธฐ) #1์ผ์ฐจ (0) | 2023.04.10 |
| [React] React study #0 (0) | 2023.04.10 |