Reducer: Component의 state update logic을 통합함.
Context: information을 아래 componenet로 전달함.
// stateProvider.js
export function StateProvider() {
return ();
}
// stateProvider.js
import { createContext } from 'react';
export const StateContext = createContext();
export function StateProvider() {
return ();
};
// StateProvider.js
import { createContext, useReducer } from 'react';
const reducer = (state, action) => {
switch (action.type) {
...
}
};
export const StateContext = createContext();
export function StateProvider() {
const [state, dispatch] = useReducer(reducer, initialState);
return ();
};
// StateProvider.js
import { createContext, useReducer } from 'react';
const reducer = (state, action) => {
switch (action.type) {
...
}
};
export const StateContext = createContext();
export function StateProvider({ children }) {
const [state, dispatch] = useReducer(reducer, initialState);
return (
<StateContext.Provider value={{ state, dispatch }}>
{children}
</StateContext.Provider>);
};
// ParentComponent.js
import { StateProvider } from './StateProvider.js';
import ChildComponent from './ChildComponent.js';
export default function ParentComponent() {
return (
<StateProvider>
<ChildComponent />
</StateProvider>
);
}
// ChildComponent.js
import { useContext } from 'react';
import { StateContext} from './StateProvider.js';
export default function ChildComponent() {
const { state, dispatch } = useContext(StateContext);
...
return (
...
);
}