오늘 우리는 구성 요소 간에 데이터를 효율적으로 공유하고 구성 요소 통신을 단순화할 수 있는 React의 useContext 후크 사용에 대해 논의할 것입니다.
React 의 useContext후크를 사용하면 소품 드릴링 없이 구성 요소 간에 데이터를 효율적으로 공유할 수 있습니다.
여러 수준의 구성 요소를 통해 소품을 전달하지 않고도 구성 요소가 전역 상태에 액세스할 수 있는 방법을 제공하여 구성 요소 통신을 단순화합니다.
결과적으로 보다 체계적이고 유지 관리 가능한 코드베이스는 물론 불필요한 재렌더링을 방지하여 성능이 향상됩니다. 또한 useContext는 Redux와 같은 다른 상태 관리 라이브러리의 대안으로 사용할 수 있습니다.
다음은 useContextReact 구성 요소에서 후크를 사용하는 방법의 예입니다.
import React, { useContext } from 'react';
// Create the context
const MyContext = React.createContext();
// Provide a context value
function MyProvider({ children }) {
const [value, setValue] = React.useState("Hello, World!");
const providerValue = { value, setValue };
return <MyContext.Provider value={providerValue}>{children}</MyContext.Provider>;
}
function MyComponent() {
// Use the context
const { value, setValue } = useContext(MyContext);
return (
<div>
<p>{value}</p>
<button onClick={() => setValue('Hello, React!')}>Change Value</button>
</div>
);
}
function App() {
return (
<MyProvider>
<MyComponent />
</MyProvider>
);
}
구성 MyProvider요소는 컨텍스트에 값을 제공하는 구성 요소입니다. 후크를 사용 useState하여 컨텍스트의 초기 값을 설정합니다. 그런 다음 구성 요소 는 자식을 래핑하고 컨텍스트에 값을 제공하는 MyProvider요소를 렌더링합니다 . 및 MyContext.Provider은 공급자에게 단일 개체로 전달됩니다.valuesetValue
컴포넌트는 후크 MyComponent를 사용하여 컨텍스트에서 값을 소비하는 컴포넌트입니다 . useContext후크는 이전에 생성한 컨텍스트 개체와 함께 호출되며 컨텍스트 의 useContext현재 값을 반환합니다. 이 예에서 컨텍스트 값은 문자열이지만 모든 유형의 데이터가 될 수 있습니다.
그런 MyComponent다음 구성 요소는 컨텍스트의 값을 표시하는 단락 요소와 버튼 요소를 사용하여 div 요소를 렌더링합니다. 버튼을 클릭하면 setValue 함수를 호출하여 컨텍스트 값을 변경하고 구성 요소를 다음으로 다시 렌더링합니다. 업데이트된 값을 표시합니다.
마지막으로 구성 요소는 구성 요소와 구성 App요소를 렌더링하는 최상위 구성 요소입니다. 이 구성 요소는 구성 요소에 컨텍스트 값을 제공하고 구성 요소를 렌더링하는 역할을 합니다.MyProviderMyComponentMyProviderMyComponent
useContextApp 구성 요소가 렌더링되면 컨텍스트에 대한 값을 설정하는 MyProvider 구성 요소와 후크 를 사용하여 컨텍스트에서 값을 검색하는 MyComponent 구성 요소를 렌더링합니다 .
이 예를 통해 useContext후크를 통해 여러 수준의 구성 요소 트리를 통해 값을 전달하지 않고도 구성 요소 간에 값을 쉽게 공유할 수 있는 방법을 확인할 수 있습니다.
당신이 그것을 좋아 바랍니다
즐거운 코딩하세요!
제안하고 싶습니다:-
LinkedIn Twitter 에서 저를 찾으세요
[email protected] 으로 이메일을 보내주세요.
머리말 뇌졸중은 누구에게나 언제든지 닥칠 수 있는 의학적 응급 상황입니다. 뇌의 한 부분으로의 혈류가 중단되어 갑작스러운 뇌 기능 상실로 이어질 때 발생합니다.
이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.
오늘날의 상호 연결된 세계에서 사이버 공격의 위협은 그 어느 때보다 만연해 있습니다. 사이버 범죄자와 국가 행위자는 지속적으로 취약점을 악용하고 귀중한 데이터를 도용하여 모든 규모의 조직에 상당한 위험을 초래합니다.
Alyson Lee, 공무 관리 고문 연방 정부의 연간 예산 책정 과정은 이산화탄소 제거(CDR) 기금 마련을 위한 노력의 핵심입니다. 매년 Carbon180은 내년의 자금 흐름을 안내하기 위해 다양한 의회 사무소에 요청을 제출합니다.
facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.
[방아쇠 경고: 이 에세이에는 Jordan Neely의 살인자를 칭찬하는 사람들의 스크린 샷이 포함되어 있습니다.] 법 집행관은 마침내 그리고 아마도 마지못해 죽을 때까지 Jordan Neely를 질식시킨 사람인 Daniel Penny를 살인 혐의로 기소했습니다.