상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
치질이 있는 경우, 어떤 종류의 패드를 사용하는 것이 좋나요?
치질 예방을 위한 규칙적인 배변 습관은 어떻게 형성하나요?
업무 중 집중력을 유지하는 방법은?
직장 내에서의 성과를 팀과 공유하는 방법은?
도쿄역에서의 기차 환승 방법은 무엇인가요?
소프트웨어의 데이터 마이그레이션이란 무엇인가요?
엑셀에서 특정 셀에 주석을 추가하는 방법은?
엑셀에서 셀 서식을 변경하는 방법은?
엑셀에서 차트의 색상을 변경하는 방법은?
엑셀에서 차트의 레이아웃을 변경하는 방법은?
엑셀에서 수식의 오류를 수정하는 방법은?
UCLA의 역사적인 사건은 무엇이 있나요?
Previous
Next
수정하기 - React의 Context API란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
React의 Context API는 React 애플리케이션에서 전역 상태 관리를 쉽게 할 수 있도록 도와주는 기능<a href='https://sangseek.com/sangseeks/입니다/ko'>입니다</a>. Context API는 컴포넌트 트리의 깊은 곳에 있는 컴포넌트들이 props를 통해 직접적으로 데이터를 전달받지 않고도 필요한 데이터를 공유할 수 있게 해줍니다. 이를 통해 props drilling(상위 컴포넌트에서 하위 컴포넌트로 props를 계속 전달해야 하는 문제)을 피할 수 있습니다. Context API의 주요 구성 요소 1. Context 생성 : `React.createContext()` 함수를 사용하여 Context를 생성합니다. 이 함수는 두 가지 주요 속성을 가진 객체를 반환합니다: `Provider`와 `Consumer`. ```javascript const MyContext = React.createContext(); ``` 2. Provider : `Provider`는 Context의 값을 제공하는 컴포넌트입니다. `value` prop을 통해 하위 컴포넌트에 전달할 데이터를 설정할 수 있습니다. `Provider`는 컴포넌트 트리의 상위에 위치해야 하며, 그 하위에 있는 모든 컴포넌트는 이 값을 사용할 수 있습니다. ```javascript <MyContext.Provider value={/* some value */}> <ChildComponent /> </MyContext.Provider> ``` 3. Consumer : `Consumer`는 Context의 값을 구독하는 컴포넌트입니다. `Consumer`는 함수의 자식으로 사용되며, 현재 Context의 값을 인자로 받아서 사용할 수 있습니다. ```javascript <MyContext.Consumer> {value => /* render something based on the value */} </MyContext.Consumer> ``` 4. useContext Hook : React 16.8부터 도입된 `useContext` Hook을 사용하면 함수형 컴포넌트에서 Context의 값을 쉽게 사용할 수 있습니다. `useContext`는 Context 객체를 인자로 받아 현재 Context의 값을 반환합니다. ```javascript const value = useContext(MyContext); ``` Context API의 사용 예 Context API는 다양한 상황에서 <a href='https://sangseek.com/sangseeks/유용/ko'>유용</a>하게 사용될 수 있습니다. 예를 들어, <a href='https://sangseek.com/sangseeks/테마 설정/ko'>테마 설정</a>, 사용자 인증 정보, 다국어 지원 등과 같은 전역 상태를 관리할 때 유용합니다. ```javascript // ThemeContext.js import React, { createContext, useState } from 'react'; const ThemeContext = createContext(); const ThemeProvider = ({ children }) => { const [theme, setTheme] = useState('light'); const toggleTheme = () => { setTheme(prevTheme => (prevTheme === 'light' ? 'dark' : 'light')); }; return ( <ThemeContext.Provider value={{ theme, toggleTheme }}> {children} </ThemeContext.Provider> ); }; export { ThemeContext, ThemeProvider }; ``` ```javascript // App.js import React from 'react'; import { ThemeProvider } from './ThemeContext'; import ThemedComponent from './ThemedComponent'; const App = () => { return ( <ThemeProvider> <ThemedComponent /> </ThemeProvider> ); }; export default App; ``` ```javascript // ThemedComponent.js import React, { useContext } from 'react'; import { ThemeContext } from './ThemeContext'; const ThemedComponent = () => { const { theme, toggleTheme } = useContext(ThemeContext); return ( <div style={{ background: theme === 'light' ? ' fff' : ' 333', color: theme === 'light' ? ' 000' : ' fff' }}> <p>The current theme is {theme}</p> <button onClick={toggleTheme}>Toggle Theme</button> </div> ); }; export default ThemedComponent; ``` Context API의 장점과 단점 장점 - 전역 상태 관리 : Context API를 사용하면 전역 상태를 쉽게 관리할 수 있어, 여러 컴포넌트 간의 데이터 공유가 용이합니다. - props drilling 방지 : 중간 컴포넌트를 <a href='https://sangseek.com/sangseeks/거치/ko'>거치</a>지 않고도 필요한 데이터를 직접적으로 사용할 수 있습니다. - React의 <a href='https://sangseek.com/sangseeks/기본 기능/ko'>기본 기능</a> : 별도의 라이브러리 없이 React의 기본 기능으로 제공되므로, 추가적인 의존성을 줄일 수 있습니다. 단점 - 성능 문제 : Context의 값이 변경되면 해당 Context를 사용하는 모든 컴포넌트가 리렌더링됩니다. 따라서 자주 변경되는 값에 대해서는 성능 문제가 발생할 수 있습니다. - 디버깅 어려움 : Context를 사용하면 데이터 흐름이 복잡해질 수 있어, 디버깅이 어려워질 수 있습니다. 결론 React의 Context API는 전역 상태 관리를 위한 강력한 도구로, 애플리케이션의 구조를 간결하게 유지하면서도 필요한 데이터를 쉽게 공유할 수 있게 해줍니다. 그러나 성능과 디버깅 측면에서 주의가 필요하므로, 적절한 상황에서 사용하는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기