У меня есть магазин Vuex, снабжающий многие компоненты Vue довольно крупным веб-приложением. Я хотел бы иметь возможность наблюдать состояния Vuex или геттеры для целей регистрации. Однако я хочу иметь возможность смотреть их «глобально», то есть не полагаясь на какой-либо конкретный компонент 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 непосредственно из модуля, в котором определено хранилище, чтобы при каждом изменении состояния я мог вызывать функцию, передавая ее в качестве аргументов старое состояние и новое состояние, чтобы записать изменение в базу данных (в идеале само изменение было бы обнаружено автоматически, как в Vue's watch(new,old) {...}
.
Полагаю, я должен использовать для этой цели нативный метод Vuex store.watch()
. Но до сих пор я не смог вызвать его из модуля магазина, как хотелось бы.
Есть подсказка? Или я что-то упустил, и то, что я пытаюсь сделать, будет так же эффективно сделано с другой техникой?