programing

vuejs2/vuex: 돌연변이에 대한 다중 구독을 방지하는 방법

minecode 2022. 7. 6. 23:24
반응형

vuejs2/vuex: 돌연변이에 대한 다중 구독을 방지하는 방법

구성 요소 내에서 데이터스토어 돌연변이를 구독하고 있습니다.

mounted() {
    this.$dataStore.subscribe((mutation, state) => console.log(mutation));
},

단, 이 뷰/컴포넌트를 열면n시간이 지날수록n하나의 변환에 대해 여러 로그 엔트리가 표시됩니다.

어떻게 하면 막을 수 있을까요?새 구성 요소를 로드한 후에도 구독이 제거되지 않는 이유는 무엇입니까?

편집: 다음 작업을 수행했습니다.subscribe함수는 다음 값을 반환합니다.unsubscribe기능:

 mounted() {
        this.unsub = this.$dataStore.subscribe((mutation, state) => console.log(mutation));
    },
    beforeDestroy() {
        this.unsub();
    },

효과가 있는 것 같은데, 이게 원래 이렇게 해야 하는 건지 전혀 모르겠어요.

난 이게 예상된 행동이라고 생각해 왜냐하면 네가 그 행동을 할 때n돌연변이를 저장하기 위해 구독하는 구성 요소: 일반적으로 돌연변이가 발생할 때 이러한 모든 구성 요소가 업데이트/처리되도록 합니다.그렇지 않으면 특정 상황에서 구독을 조건부로 추가해야 합니다., 컴포넌트를 파기하면 모든 이벤트청취자는 파기됩니다.

언급URL : https://stackoverflow.com/questions/46632163/vuejs2-vuex-how-to-prevent-multiple-subscriptions-to-mutations

반응형