React Study

React - context api

2020. 12. 15. 00:09
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ context api
  4. ๐Ÿ“Œ Conclusion
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • Introduction
  • context api
  • Conclusion

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ context api๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ „์—ญ์—์„œ ์ƒํƒœ ๊ฐ’์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ context api

context api๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์— ์•ž์„œ ๋‘๊ฐ€์ง€ hook์„ ์•Œ์•ผํ•ฉ๋‹ˆ๋‹ค.

  1. createContext
  2. useContext

์ž…๋‹ˆ๋‹ค.

createContext๋Š” ๋ง๊ทธ๋Œ€๋กœ context๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

const MyContext = createContext("defaultValue");

์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ์ดˆ๊ธฐ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

useContext๋Š” createContext๋กœ ๋งŒ๋“  ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

const text = useContext(MyContext);

๊ทธ๋Ÿผ ์ด์ œ ๊ฐ„๋‹จํ•œ ์ „์—ญ์œผ๋กœ ๋งŒ๋“  context api๋ฅผ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”?

import React, { createContext, useContext, useState } from "react";

const MyContext = createContext("defaultValue");

function Child() {
  // context๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์š”.
  const text = useContext(MyContext);
  return <div>HI? {text}</div>;
}

function Parent() {
  return <Child />;
}

function GrandParent() {
  return <Parent />;
}

function ContextSample() {
  const [value, setValue] = useState(true);

  const onClick = () => {
    setValue(!value);
  };

  return (
    // โญ๏ธ ๋ฐ”๋กœ ์ด๋ถ€๋ถ„์—์„œ ์ „์—ญ value ๊ฐ’์„ ์ „๋‹ฌ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    <MyContext.Provider value={value ? "GOOD" : "BAD"}>
      <GrandParent text="GOOD" />
      <button onClick={onClick}>CLICK</button>
    </MyContext.Provider>
  );
}

export default ContextSample;

๐Ÿ“Œ Conclusion

์ด๋ ‡๊ฒŒ ํ•œ๋ฒˆ context api์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. context api๋กœ๋Š” ๋ณต์žกํ•˜์ง€ ์•Š์€ app์€ redux๋ฅผ ์“ฐ์ง€ ์•Š๊ณ ๋„ ๊ตฌํ˜„์„ ํ•œ๋‹ค๊ณ  ํ•˜๋„ค์š”. ๊ทธ๋งŒํผ ๋งŽ์ด ๊ฐ•๋ ฅํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๋‘๊ฐ€์ง€ ๋Œ€์•ˆ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด vuex์— ๋น„ํ•ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์š” ์•ˆ๋…•~

๋ฐ˜์‘ํ˜•

'React Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

React - custom hook  (0) 2020.12.13
React - useReducer  (0) 2020.12.13
React - React.memo  (0) 2020.12.07
React - useCallback  (0) 2020.12.07
React - useMemo  (0) 2020.12.06
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ context api
  4. ๐Ÿ“Œ Conclusion
'React Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • React - custom hook
  • React - useReducer
  • React - React.memo
  • React - useCallback
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • vue cypress
  • React Native
  • Vue test
  • vue bdd
  • vue tdd
  • BDD
  • swift5
  • TDD
  • svelte
  • TypeScript
  • apollo
  • react useRef
  • slot ํŒจํ„ด
  • Vue
  • CSS
  • vue3
  • swift
  • jest
  • Nextjs
  • Design Pattern
  • Kotlin
  • react
  • react-component-slot
  • vue storybook
  • client only
  • Cypress
  • Javascript
  • storybook6
  • D3
  • javascript pattern

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
React - context api
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.