React Context API 사용 및 Props와 Context의 차이점

컨텍스트 API 사용 방법

– React 애플리케이션에서 전 세계적으로 데이터 공유 및 관리이를 수행하는 방법을 제공합니다(간편한 전역 상태 관리 허용).

부모 -> 자식 데이터를 구성 요소에 전달할 때 소품을 전달하지 않고도 구성 요소 간에 데이터를 공유할 수 있습니다.

1. UserContext.js 파일 생성

– createContext function import : 새로운 Context를 생성할 때 사용하는 기능

– 초기 값을 null로 지정하고 다른 구성 요소에서 사용하기 위해 내보냅니다.

import { createContext } from “react”;
내보내기 const UserContext = createContext(null)

2. App.js(상위)

– UserContext 컴포넌트 가져오기

‘./components/UserContext에서 { UserContext } 가져오기

const (user, setUser) = useState('');
    return (
        <UserContext.Provider value={{user, setUser}}>
            <div className="App">
                <HeaderPage/>
                <Switch>
                    <Route path="/" component={HomePage} exact={true}/>
                    <Route path="/users" component={UsersPage}/>
                    <Route path="/chats" component={ChatsPage}/>
                    <Route path="/login" component={LoginPage}/>
                </Switch>
            </div>
        </UserContext.Provider>
    );

– 상태 변수(user, setUser)를 생성하고 ‘ ‘(비어 있음)을 초기값으로 설정합니다.

UserContext.ProviderUserContext라는 컨텍스트 개체를 사용하여 하위 구성 요소에 데이터 전달 ( componentname.vendor )

– 전송할 데이터를 지정하여 value 속성을 통해 전송된 user 및 setUser를 사용할 수 있습니다.

3. 자식(자식) 구성 요소에서 useContext 사용

– useContext 후크, UserContext 컴포넌트 가져오기

‘반응’에서 {useContext} 가져오기
import { UserContext } from ‘./UserContext’;

const {user, setUser} = useContext(UserContext);

– UserContext.provider로 전송된 값(user, setUser)은 애플리케이션 전체에서 사용할 수 있습니다.

– useContext 후크를 사용하여 userContext 값을 반환하고 분해합니다.

문맥의 차이 <-> 소품

문맥 소품
React 구성 요소 간에 전역 상태를 공유하는 데 사용되는 메커니즘 구성 요소 간에 데이터를 전달하는 기본 방법
데이터는 상위 구성 요소에서 하위 구성 요소로 간접적으로 전파될 수 있습니다.
(가운데 부품은 생략가능)
부모 -> 자식 컴포넌트의 데이터를 직접 전달
(상호작용이 명확하고 직접적일 때 사용)
여러 애플리케이션에서 공유하는 데이터에 액세스해야 하는 경우 전역 상태 관리에 유용합니다. 읽기 전용이므로 상위 구성 요소에서 전달된 props는 하위 구성 요소에서 수정할 수 없습니다.
그것은 드릴링에서 지원을 방지할 수 있습니다.
-> 코드 구조를 단순화하고 유지보수가 쉬운 전역 상태 구현
데이터가 모든 중간 구성 요소를 통해 명시적으로 라우팅되어야 하는 경우를 소품 드릴링이라고 합니다.