programing

스토어 모듈을 구독하는 방법

prostudy 2022. 8. 1. 20:49
반응형

스토어 모듈을 구독하는 방법

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

반응형