global state

์ „์—ญ ์ƒํƒœ๋Š”

  • ์‹ฑ๊ธ€ํ„ด์ด๋ฉฐ, ํŠน์ • ์ปจํ…์ŠคํŠธ์—์„œ ์ƒํƒœ๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ๊ณต์œ  ์ƒํƒœ์ด๋ฉฐ, ์ด๋Š” ์ƒํƒœ ๊ฐ’์ด ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ๋‹จ์ผ ๊ฐ’์ผ ํ•„์š”๋Š” ์—†๋‹ค. ์‹ฑ๊ธ€ํ„ด์ด ์•„๋‹Œ ์ „์—ญ ์ƒํƒœ๋Š” ์—ฌ๋Ÿฌ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์‹ฑ๊ธ€ํ„ด์ด ์•„๋‹Œ ์ „์—ญ ์ƒํƒœ ์˜ˆ์ œ

const createContainer = () => {
    let base = 1;
    const addBase = (n) => n + base
    const changeBase = (b) => { base = b }
    return { addBase, changeBase }
}

const container1 = createContainer()
const container2 = createContainer()

container1.changeBase(10)

console.log(container1.addBase(2)) // 12
console.log(container2.addBase(2)) // 3

ํ•ด๋‹น ์˜ˆ์ œ์—์„œ base๊ฐ€ ๊ฐ ์ปจํ…Œ์ด๋„ˆ์— ๊ฒฉ๋ฆฌ๋ผ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— container1๊ณผ container2๋Š” ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

์ „์—ญ ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•  ๋•Œ

  1. props๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์–ด๋ ค์šด ์ƒํƒœ

  2. ์ด๋ฏธ ๋ฆฌ์•กํŠธ ์™ธ๋ถ€์— ์ƒํƒœ๊ฐ€ ์žˆ์„ ๋•Œ

prop์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜์ง€ ์•Š์„ ๋•Œ

์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๋‘ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด props๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ž‘์—…์€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ๋„ ๋ฆฌ๋ Œ๋”๋ง๋˜์–ด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

Last updated