# μ€ν μ΄ λͺ¨λν
μ ν리μΌμ΄μ μ μ€ν μ΄λ₯Ό μ μ©ν΄μ μ¬μ©νλ€κ° 보면 κΈλ°© μ€ν μ΄μ λ©μ΄λ¦¬κ° 컀μ§λλ€. κ·Έλ΄λ λ°μ΄ν°(μν)μ μ±κ²©λ³λ‘ μ€ν μ΄λ₯Ό λͺ¨λν ν΄μ£Όλ©΄ ν¨μ¬ κ΄λ¦¬νκΈ°κ° μμν©λλ€.
# μ€ν μ΄ λͺ¨λν μ½λ νμ
μ€ν μ΄λ₯Ό λͺ¨λν νλ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
new Vuex.Store({
modules: {
λͺ¨λ λͺ
: λͺ¨λμ λ΄μ©
}
})
# μ€ν μ΄ λͺ¨λν μμ
μ΄λ μ ν리μΌμ΄μ μ΄λ μ§ μΈμ¦μ κ±°μ νμλ‘ μ‘΄μ¬ν©λλ€. κ·Έλ¬λ©΄ μ¬μ©μμ μΈμ¦ μ 보(auth)μ μν μ 보(product)λ₯Ό κ°κ° λͺ¨λλ‘ λΆν ν΄λ³΄κ² μ΅λλ€. μ€ν μ΄μ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
// store.js
import auth from './modules/auth/index.js';
import product from './modules/product/index.js';
new Vuex.Store({
modules: {
auth: auth,
product: product
}
})
μμμ μν¬νΈνλ authμ product λͺ¨λμ λ΄μ©μ μλμ κ°μ΅λλ€.
// auth.js, product.js
import state from './state.js';
import getters from './getters.js';
import mutations from './mutations.js';
import actions from './actions.js';
export default {
namespaced: true,
state: state,
getters: getters,
mutations: mutations,
actions: actions
}
λ·°μμ€ λͺ¨λνμ ν΅μ¬μ ES6μ modules ꡬ문μ μ μ΄ν΄νλ κ²μ
λλ€. κ·Έλ¦¬κ³ κ° λͺ¨λλ€μ μμ±λͺ
μ΄ μ μΌνλλ‘ namespaced: true
λ₯Ό κΌ μΆκ°ν΄μ€μΌ ν©λλ€.
β Helpers state vs data β