<aside>
✅ 전역 상태를 싱글턴과 유사하게 만들고 싶다면, 모듈 상태
를 사용하는 것이 싱글턴 값으로 메모리에 할당되기 때문에 더좋다.
</aside>
// number.ts
let count = 0;
let state = {
count = 0;
}
// state를 읽는 함수
export const getState = () => state;
// 새로운 state를 받아서, 교체해 주는 함수
export const setState = (nextState) => {
state = nextState
}
export const setState = (nextState) => {
state = typeof nextState === 'function' ? nextState(state) : nextState;
}
만약에 nextState가 함수라면, 이전 state를 넘겨서, state를 업데이트 할 수 있다 like this
setState((prevState) => ({
...prevState,
count : prevState.count + 1
}));
위의 상태와 함수들을 컨테이너 안에다가 넣고, 이 컨테이너를 실행할 수 있는 함수까지 만들 수 있다.