반응형
Vuex에서 변환 또는 액션 내에서 공유 도우미 함수를 호출하는 방법
Vuex 돌연변이의 많은 콜에서 공통되는 코드를 분리하려고 합니다.나는 이것이 권장되지 않는다는 느낌이 들지만 왜 그런지 이해할 수 없다.
아래 샘플 코드의 이미지를 참조해당 샘플 코드는 다음과 같습니다.
이 '도움말' 엔트리를 Vuex에 추가했습니다.이것은 분명히 존재하지 않습니다만, 돌연변이나 액션으로부터 공유 도우미 기능을 「getColumn」이라고 하는 것은 어떻게 할 수 있습니까?
아니면 'VuexHelper' 클래스의 정적 메서드를 호출해야 합니까?:(
예를 들어 다음과 같습니다.
주의: 저는 이미 다음 사항을 검토했습니다.
- Vue Mixins - 네, 이와 같은 기능이 동작할 수 있지만 Vuex에서는 지원되지 않습니다.또한 vue 메서드는 값을 반환하지 않습니다.
- 모듈을 살펴보았지만 필요한 기능(예를 들어 값을 반환하는 간단한 재사용 함수)을 얻을 수 없습니다.
고마워요.
왜 도우미 기능을 가게에 넣으려고 하는지 알 수 없습니다.그냥 일반 함수를 사용하면 됩니다.
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
반응형
'programing' 카테고리의 다른 글
CSP에서 'unsafe-eval'을 사용하지 않는 Vuejs 브라우저 확장 (0) | 2022.08.15 |
---|---|
Vue.js의 상위 컴포넌트에서 동적 컴포넌트로 데이터 전달 (0) | 2022.08.15 |
Vue 개체를 요소에 연결할 때 가장 권장되는 구문은 무엇입니까? (0) | 2022.08.15 |
메이븐의 '폼' 패키지는 무엇입니까? (0) | 2022.08.15 |
@EJB를 사용할지 @Inject를 사용할지 (0) | 2022.08.15 |