โ ๏ธ ์ ๋ฆฌํ ๋ด์ฉ์ ์คํ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
Context API
๋ฆฌ์กํธ ํ๋ก์ ํธ์์ ์ ์ญ์ ์ผ๋ก ์ฌ์ฉํ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ์ ์ฉํ ๊ธฐ๋ฅ์ด๋ค.
๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ props๋ก ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ์ปดํฌ๋ํธ ์ฌ๊ธฐ ์ ๊ธฐ์ ํ์ํ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ ๋๋ ์ฃผ๋ก ์ต์์ ์ปดํฌ๋ํธ์์ ๊ด๋ฆฌ๋ฅผ ํ๋ค.
๋ง์ฝ ๊ทธ๋ฆผ์ฒ๋ผ Root ์ ๊ฐ์ G๊น์ง ์ ๋ฌํ๋ ค๊ณ ํ ๋ ์ฌ๋ฌ๋ฒ ๊ฑฐ์ณ์ ๋ค๋ฃจ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ง ๋ณด์์ฑ์ด ๋ฎ์์ง๋ค.
Context๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋๋ ๋ฐ์ดํฐ ํ๋ฆ๊ณผ๋ ์๊ด์์ด ์ ์ญ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉํ๋ค. ์ ์ญ ๋ฐ์ดํฐ๋ฅผ Context
์ ์ ์ฅํ ํ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ปดํฌ๋ํธ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ ์ ์๋ค.
const MyStore = React.createContext(defaultValue);
Context ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค. ์ปดํฌ๋ํธ๊ฐ ์ด context๋ฅผ ๊ฐ์ง๋ ค๋ฉด ํด๋น ์ปดํฌ๋ํธ ์์์ provider
๋ก๋ถํฐ context๋ฅผ ์ ์ํ ๋ณ์ MyStore๋ฅผ ๊ฐ์ธ๋ฉด ๋๋ค.
provider๋ ์ ์ํ context๋ฅผ ํ์ ์ปดํฌ๋ํธ์๊ฒ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค.
Provider๋ฅผ ์ฌ์ฉํ๋ฉด Context์ value๋ ๋ณ๊ฒฝํ ์ ์๋ค.
<MyStore.Provider value={this.state}>
<subComponent1 />
<subComponent2 />
</MyStore.Provider>
context ๋ณํ๋ฅผ ๊ตฌ๋ ํ๋ ์ปดํฌ๋ํธ์ด๋ค.
<MyContext.Consumer>
{value => /* context ๊ฐ์ ์ด์ฉํ ๋ ๋๋ง */}
</MyContext.Consumer>
๋ฆฌ์กํธ์์ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Redux๋ง ์ฌ์ฉํด๋ณด์๋๋ฐ context API๋ฅผ ์ฒ์ ์ ์ฉํด๋ณด์๋ค. ๋ฆฌ๋์ค๋ณด๋ค ํจ์ฌ ์ฝ๊ณ ๊น๋ํ๊ฒ ๋ค๋ฃฐ ์ ์๋ค๋ ๋๋์ ๋ฐ์์ ๋ด์ผ์ ์ง์ ์์๋ฅผ ์์ฑํด์ ํ์คํ ์ดํดํด๋ด์ผ๊ฒ ๋ค.
๊ฐ์ ์กฐ๊ธ์ฉ ๋ ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๋ฃ์! ๊ทธ๋ฆฌ๊ณ ์ปจ๋์ ์กฐ์ ์ํ๊ธฐ!! ์ํ๊ณ ์์ผ๋๊น ์กฐ๊ธ๋ง ๋ ๋ ธ๋ ฅํ์
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค
- Context
- react context api ๊ฐ๋ & ์์
- ๊น๋ฏผ์ค ์ , โ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ (๊ฐ์ ํ)โ, ๊ธธ๋ฒ