• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

store getter 접근 문의

19.11.12 08:31 작성 조회수 102

1

안녕하세요.

좋은 강좌 해주셔서 진심 감사드립니다.

스토어를 모듈별로 아래와 같이 (todo.js) 관리할 경우 

TodoFooter.vue 에서 state 접근 시 

this.$store.state.todo.num 이렇게 하면 값을 나오는것을 확인했습니다.

getters의 경우 this.$store.getters.getNumber 이렇게 접근해야 값이 나오는데

스토여가 여러개 있을 시 중복을 피하고자 “namespaced: true” 옵션을 넣으면 될거 같아서 추가해봤습니다.

추가 후 this.$store.getters.getNumber 로는 값이 나오지 않지만 접근 방법을 모르겠습니다. 

Getters 의 경우도 state 와 동일하게 getter.todo ~ 로 접근이 가능하게 할려면 어떻게 하는지 궁금합니다.

감사합니다.

———  todo.js ————

const state = {

    num: 10

};

const getters = {

        getNumber(state) {

            return state.num;

        },

        doubleNumber(state) {

            return state.num * 2;

        }

};   

export default {

    namespaced: true,

    state,

    getters

}

———  store.js —————

import Vue from 'vue'

import Vuex from 'vuex'

import todo from './modules/todo'

Vue.use(Vuex);

export const store = new Vuex.Store({

    modules: {

        todo

    }

})

답변 1

답변을 작성해보세요.

0

안녕하세요 국정일님, 좋은 강좌라고 말씀해주셔서 감사합니다 :)

질문하신 것에 바로 답변 드리면 아래와 같은 코드로 모듈화된 스토어의 속성에 접근할 수 있습니다.

(기존)

this.$store.state.num

(모듈화)

this.$store.state.모듈화이름.num

그리고 getters는 아래와 같은 방식으로 접근합니다.

this.$store.getters['모듈화이름/속성이름']

따라서, 정일님의 상황에 코드를 대입해보면 아래와 같습니다.

this.$store.getters['todo/doubleNumber']

해보시고 안되시는거 있으면 또 알려주세요 :)