반응형
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
반응형
'programing' 카테고리의 다른 글
부팅 시 지정된 브라우저 URL로 리디렉션 (0) | 2022.07.11 |
---|---|
봄 MVC: 검증 실행 방법 (0) | 2022.07.06 |
Vue 전환을 사용하여 div를 확장 및 축소하는 방법 (0) | 2022.07.06 |
사용자가 Vue JS에서 탐색 컨테이너 외부를 클릭할 때 탐색을 닫거나 전환하는 방법 (0) | 2022.07.06 |
매핑된 Vuex 함수는 함수가 아니지만 로드됩니다. (0) | 2022.07.03 |