Props를 통해서 화면 구성을 완료 -> Context API
ContextAPI란? 리액트의 기능중에 하나로, props를사용하지 않아도 특정 값을 모든 컴포넌트끼리 공유가 가능하도록하는 장치이다.(전역상태관리 용이)
const LetterContext = createContext(); export const useLetterContext = () => useContext(LetterContext);
- letterContext라는 이름을 가진 컨텍스트를 createContext()함수를 통해서 만듦(어디서든 데이터제공할수있음)
- useContext()로 letterContext컨텍스트를 접근하게 만든다.
export const LetterProvider = ({ children }) => { const [letterList, setLetterList] = useState([]); const [setselectedMember, setSetselectedMember] = useState(""); const handleMember = (membername) => { setSetselectedMember(membername); }; const newMessage = (todo) => { const updatedList = [todo, ...letterList]; setLetterList(updatedList); localStorage.setItem("letterList", JSON.stringify(updatedList)); };
- LetterProvider라는 상태관리 컴포넌트를 만든다
- letterList와 setselectedMember라는 useState훅을 만들고 관리한다.
<LetterContext.Provider value={{ letterList, newMessage, setselectedMember, handleMember }} {children} </LetterContext.Provider>
contextAPI에서 value값을 사용하기 위해서는 해당 컴포넌트에 .Provider를 쓰고 해당 value값들을 접근할수 있게 한다. {children}으로 감싸서 하위컴포넌트들에게 노출시켜준다.