[그림 1. 상태 끌어올리기]
[그림 2. Context API]
[그림 3. props]
[그림 4. Context API]
import { createContext, useState } from "react";
// Context 객체 생성
const CounterContext = createContext();
// Provider 컴포넌트 작성
export function CounterProvider({ children }){
// 상태
const [count, setCount] = useState(10);
// 상태 변경 함수
const countUp = function(step){
setCount(count + step);
};
// 하위 컴포넌트에 전달할 Context
const values = {
state: { count },
actions: { countUp }
};
return (
<CounterContext.Provider value={ values }>
{ children }
</CounterContext.Provider>
);
}
export default CounterContext;
import { CounterProvider } from '@context/CounterContext';
<CounterProvider>
<Left1 />
<Right1 />
</CounterProvider>
import CounterContext from '@context/CounterContext';
import { useContext } from 'react';
const { state: { count } } = useContext(CounterContext);