programing

Vuex에서 변환 또는 액션 내에서 공유 도우미 함수를 호출하는 방법

prostudy 2022. 8. 15. 09:36
반응형

Vuex에서 변환 또는 액션 내에서 공유 도우미 함수를 호출하는 방법

Vuex 돌연변이의 많은 콜에서 공통되는 코드를 분리하려고 합니다.나는 이것이 권장되지 않는다는 느낌이 들지만 왜 그런지 이해할 수 없다.

아래 샘플 코드의 이미지를 참조해당 샘플 코드는 다음과 같습니다.

이 '도움말' 엔트리를 Vuex에 추가했습니다.이것은 분명히 존재하지 않습니다만, 돌연변이나 액션으로부터 공유 도우미 기능을 「getColumn」이라고 하는 것은 어떻게 할 수 있습니까?

여기에 이미지 설명 입력


아니면 'VuexHelper' 클래스의 정적 메서드를 호출해야 합니까?:(

예를 들어 다음과 같습니다.

여기에 이미지 설명 입력

주의: 저는 이미 다음 사항을 검토했습니다.

  1. Vue Mixins - 네, 이와 같은 기능이 동작할 수 있지만 Vuex에서는 지원되지 않습니다.또한 vue 메서드는 값을 반환하지 않습니다.
  2. 모듈을 살펴보았지만 필요한 기능(예를 들어 값을 반환하는 간단한 재사용 함수)을 얻을 수 없습니다.

고마워요.

왜 도우미 기능을 가게에 넣으려고 하는지 알 수 없습니다.그냥 일반 함수를 사용하면 됩니다.

function getColumn(state, colName) {
  // Do your thing.
}

const vstore = new Vuex.Store({
  // ....
  mutations: {
    removeColumn(state, colName) {
      var column = getColumns(state, colName);
    }
  }
};

한편, 꼭 필요한 경우 raw 모듈 및 포함된 모든 모듈에 액세스할 수 있습니다.

var column = this._modules.root._rawModule.helpers.getColumns(state, colName);

이 구문은 문서화되어 있지 않으며 이후 버전에서 변경될 수 있습니다.

Vuex getter를 메서드 스타일의 getter로 구현할 수 있습니다.그러면 특정 열을 인수로 전달할 수 있습니다.

getters: {
  getColumn: state => colName => {
    return state.columns[colName] || null
  }
}

그런 다음 getColumn을 다음과 같이 스토어 내에서 사용할 수 있습니다.

let column = getters.getColumn('colNameString')

vuex docs > getters > 메서드스타일 액세스

언급URL : https://stackoverflow.com/questions/51915776/how-to-call-a-shared-helper-function-from-within-a-mutation-or-action-in-vuex

반응형