IT이야기

(getter 없이) vuex 상태 속성에 직접 액세스하는 것은 잘못된 관행입니다. 그 이유는 무엇입니까?

cyworld 2022. 6. 13. 22:30
반응형

(getter 없이) vuex 상태 속성에 직접 액세스하는 것은 잘못된 관행입니다. 그 이유는 무엇입니까?

my store.js 파일이 여기에 있는 경우:

const state = {
  count: 0,
  loggedIn: false
}

const mutations = {
  UP_COUNT(state) {
      state++;
  }
}

const actions = {
  upCount({ commit }) {
    commit('UP_COUNT');
  }
}   


예를 들어 상태를 높이라고 합시다.countVue 컴포넌트 중 하나에서 동작을 호출하여 변환합니다.

this.$store.dispatch('upCount');


그런 다음 다른 Vue 구성 요소에서 상태 수를 사용한다고 가정합니다.

<div class="count">{{ this.$store.state.count }}</div>


이 스타일은 뭐가 문제죠?(vs 사용방법)$this.store.getters...)

에서 지적한 바와 같이, 당신이 반드시 해야 할 일은 어렵고 빠르게 할 수 있는 방법이 없지만, 연습대로 하는 것이 가장 좋습니다.

getter를 사용하는 것은 과잉으로 보일 수 있지만 getter 이름을 그대로 유지하면 getter를 사용하여 백그라운드에서 데이터를 변경할 수 있습니다.이것에 의해, 사용했을 가능성이 있는 다른 장소에의 모든 참조를 재작성해, 검색하는 작업이 큰폭으로 삭감됩니다.this.$store.state.module.someValue.

또한 여러 상태 변수에 기반한 데이터를 하나의 getter로 반환할 수 있습니다.

`isAllowed: 'getIsAllowed'` 

기초가 될 수 있다

getIsAllowed (state) {
  return state.loggedIn && state.hasPermission && state.somethingElse
}

무엇을 변경할 수 있습니다.isAllowed는 컴포넌트의 각 상태 변수를 사용하여 로직을 여러 번 실행하는 것이 아니라 한 곳에서 쉽게 기반으로 합니다.

언급URL : https://stackoverflow.com/questions/47231044/is-it-bad-practice-to-access-vuex-state-properties-directly-without-getters-a

반응형