programing

글로벌 vuex 워처

prostudy 2022. 9. 1. 21:14
반응형

글로벌 vuex 워처

저는 Vuex 스토어에서 대규모 웹 앱에 많은 Vue 컴포넌트를 제공하고 있습니다.로깅을 위해 Vuex 상태 또는 getter를 볼 수 있으면 좋겠습니다.단, 특정 Vue 컴포넌트에 의존하지 않고 '글로벌하게' 감시할 수 있으면 좋겠습니다.이 때문에, 같은 속임수를 배제한다.

//aComponent.vue
watch:{ '$store.state.data'(value, oldValue) { /*do something here*/ }}

그리고.

//App.vue
created() {
  this.$store.watch((state) => state.watchedState) => {/*do something here*/ })
}

대신 스토어가 정의되어 있는 모듈에서 직접 Vuex 상태 또는 getter를 감시하는 방법을 찾고 있습니다.그러면 상태가 변경될 때마다 이를 인수로서 전달하는 함수를 호출하여 변경 내용을 데이터베이스에 쓸 수 있습니다(이상적으로는 Vue의 경우와 같이 변경 내용 자체가 자동으로 감지됩니다).watch(new,old) {...}.

Vuex 네이티브 방식을 사용해야 할 것 같습니다.store.watch()이 목적을 위해.그러나 지금까지는 원하는 대로 스토어 모듈에서 호출할 수 없었습니다.

단서는?아니면 제가 뭔가를 놓쳤나요? 그리고 제가 하려는 일은 다른 기술을 통해서도 똑같이 효율적으로 수행될 수 있을까요?

돌연변이를 관찰하기 위해 다음과 같은 옵션이 있습니다.

넌 할 수 있다.subscribe그 후 돌연변이를 통해 알려지게 됩니다.

store.timeout( ( ( ( signal , state ) = > { } )

이것은, 다음의 몇개의 방법으로 실현할 수 있습니다.

  1. 사용하다subscribe수작업으로 만든 스토어, 아마도main.js

  2. 저장소의 각 인스턴스에 추가되고 다시 추가되는 플러그인을 만듭니다.subscribe하게

  3. 로깅에 vuex 공식 플러그인 사용

Getters를 감시하기 위해서는 아마도 패치 적용을 할 필요가 있을 것입니다.getters수작업으로 소유하다

개발 중에 vuex에서 어떤 일이 일어나는지 보고 싶다면 vuejs 도구를 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/55207126/global-vuex-watchers

반응형