반응형
스토어 모듈을 구독하는 방법
Vuex에서 할 수 있는 일은store.subscribe
스토어의 모든 변경에 대해 호출되는 콜백을 전달합니다.
내 앱에는 많은 모듈이 있는 스토어가 있는데subscribe
특정 모듈에만 적용되며 이러한 종류의 논리를 가질 필요가 없습니다.if (mutation.type != thisModule.type) return;
.
일부 모듈만 구독할 수 있습니까?문서에서 찾을 수 없습니다.
저도 같은 문제가 있어서 이 질문을 하게 되었습니다.https://forum.vuejs.org/t/vuex-subscribe-and-modules/36049 Subscription is always global.
각 서브스크립션의 돌연변이를 체크하는 것이 과제입니다.
서브스크립션용 모듈 'your module'이 있는 경우 다음을 수행할 수 있습니다.
store.subscribe((mutation, state) => {
if (mutation.type.startsWith("yourmodule")){
//do your stuff here
}
})
돌연변이.type은 실제 변환명을 지정합니다.예를 들어 'your module/your commit'은 startswith() 메서드를 사용하여 체크합니다.다만, 자신의 프로젝트에 대해서는, 보다 정확한 체크를 사용할 수 있습니다.
시험해 보세요.
store.subscribe((mutation, state) => {
const pieces = mutation.type.split('/')
if (pieces.length > 1) {
const module = pieces[0]
}
})
너무 복잡하게 만드는 것 같습니다.모듈에 접속하는 가장 좋은 방법은 모듈 내에 포함시키는 것입니다.modules
스토어 인스턴스의 속성.
const moduleA = {
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... }
}
const moduleB = {
state: { ... },
mutations: { ... },
actions: { ... }
}
const store = new Vuex.Store({
modules: {
a: moduleA
b: moduleB
}
})
언급URL : https://stackoverflow.com/questions/46855857/how-to-subscribe-to-a-store-module
반응형
'programing' 카테고리의 다른 글
Vue, 렌더 방식으로 구성 요소에 데이터를 전달하려면 어떻게 해야 합니까? (0) | 2022.08.01 |
---|---|
메서드의 삭제가 형식의 다른 메서드와 동일합니다. (0) | 2022.08.01 |
메서드 값을 다른 컴포넌트에 전달하다 (0) | 2022.07.31 |
PrimeVue: 서버 측 페이지 수가 있는 DataTable (0) | 2022.07.31 |
오류 LNK2005: xxx가 MSVCRT.lib(MSVCR100.dll) C:\something\에 이미 정의되어 있습니다.LIBCMT.lib(setlocal.obj) (0) | 2022.07.31 |