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