module state

๋ฆฌ์•กํŠธ์—์„œ ๋ชจ๋“ˆ ์ƒํƒœ๋ฅผ ์ „์—ญ ์ƒํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ชจ๋“ˆ ์ƒํƒœ(module state) ์‚ดํŽด๋ณด๊ธฐ

๋ชจ๋“ˆ ์ƒํƒœ๋Š” ๋ชจ๋“ˆ ์ˆ˜์ค€์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜๋‹ค. ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋“ˆ ์ƒํƒœ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

let state = {
    count: 0;
}

ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ๋ชจ๋“ˆ ์ƒํƒœ๋ผ๊ณ  ํ•  ๋•Œ, ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ  ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด๋ณด์ž.

export const getState = () => state

export const setState = (newState) => {
    state = newState
}

ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ setState๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

export const setState = (newState) => {
    state = typeof nextState === 'function' ? newState(state) : newState

setState((state) => {
    return {
        ...state,
        count: state.count + 1
    }
})
}

๋ชจ๋“ˆ ์ƒํƒœ๋ฅผ ์ง์ ‘ ์ •์˜ํ•˜์ง€ ์•Š๊ณ , ์ƒํƒœ์™€ ์ƒํƒœ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋‚ด๋ถ€์— ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ์—์„œ ๋ชจ๋“ˆ ์ƒํƒœ ์‚ฌ์šฉํ•˜๊ธฐ

๊ตฌ๋…์œผ๋กœ ๋ชจ๋“ˆ ์ƒํƒœ ๊ตฌํ˜„ํ•˜๋Š” ์—์ œ

createStore ์‚ฌ์šฉํ•˜๊ธฐ

store์˜ ์ƒํƒœ ๊ฐ’๊ณผ ๊ฐฑ์‹  ํ•จ์ˆ˜๋ฅผ ํŠœํ”Œ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ›…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

useStore ์‚ฌ์šฉํ•˜๊ธฐ

Last updated