React useContext로 상태 관리하기

1832 단어 frontendhooksreact
이것은 ReactuseContext 후크를 사용하여 전역 상태 변수를 생성하는 방법을 설명하는 짧은 게시물입니다. 따라서 소품을 다른 구성 요소에 쉽게 전달하고 "소품 드릴링"을 피할 수 있습니다.

컨텍스트 파일 설정


  • createContext를 사용하여 컨텍스트 구성 요소를 만듭니다.

  • import {createContext, useState} from 'react'
    
    export const LoginContext = createContext({});
    


    Context.Provider로 구성 요소 래핑


  • LoginContext 내의 모든 구성 요소를 래핑합니다. 모든 구성 요소는 LoginContext 소품에 액세스할 수 있습니다.
  • 소품은 {{double curly braces}} 를 사용하여 전달됩니다.


  • import {LoginContext} from './Context'
    
    export function App() {
      const [loggedIn, setLoggedIn] = useState(false)
    
      return(
        <LoginContext.Provider value={{loggedIn, setLoggedIn}}>
           <Home />
           <Login />
           <Profile />
        </LoginContext.Provider>
      )
    }
    


    구성 요소에 소품 전달


  • loggedInsetLoggedInLogin 구성 요소
  • 로 전달
  • 로그인 구성 요소는 useContext를 통해 LoginContext에서 소품에 액세스할 수 있습니다.
  • 소품 구조 분해에 {curly braces} 대신 [square brackets]를 사용합니다.

  • import {LoginContext} from '../Context';
    import React, {useContext} from 'react';
    
    export const Login = () => {
       const {loggedIn, setLoggedIn} = useContext(LoginContext);
    
       return (
          <div>
             <button onClick={() => setLoggedIn(!loggedIn)}>Click 
               here to login
             </button>
             {loggedIn? <h1>You are logged in</h1>: <h1>You are 
             not logged in</h1>}
          </div> 
       )
    }
    

    좋은 웹페이지 즐겨찾기