6.2.3 Context에서 유동적인 값 다루기

    App 컴포넌트에서 useState를 사용해 관리하는 상태를 Provider로 넣어주면 값이 바뀔 때 useContext를 사용하는 컴포넌트 쪽에서도 리렌더링이 잘 발생할 것입니다. Provider를 사용하는 컴포넌트에서 Context의 상태를 관리하는 것보다는 Provider 전용 컴포넌트를 따로 만드는 것이 유지보수성이 더 높습니다. 특히 Context에서 다루는 로직이 복잡할 때는 전용 컴포넌트를 만드는 것이 좋습니다.

    contexts/LogContext.js

    import React from 'react';
    import {createContext, useState} from 'react';
    
    const LogContext = createContext();
    
    export function LogContextProvider({children}) {
      const [text, setText] = useState('');
      return (
        <LogContext.Provider value={{text, setText}}>
          {children}
        </LogContext.Provider>
      );
    }
    
    export default LogContext;
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.