商店取消订阅与观察者



从组件监听存储区中getter的正确方法是什么?

应该使用手表吗?还是我应该订阅它?

这就是我目前正在做的事情:

this.watcher_handle = this.$watch(() => {
return this.$store.getters.someValue;
}, (new_value, old_value) => {
// Do something cool
});

两者的区别和优势是什么?

根据文档,您想做这样的事情。

import { mapGetters } from 'vuex'
export default {
// ...
computed: {
// mix the getters into computed with object spread operator
...mapGetters([
'doneTodosCount',
'anotherGetter',
// ...
])
}
}

这将是";适当的方式";。

vue文档讨论了观察者和计算属性之间的区别,以及观察者何时应该主要用于组件执行的异步或昂贵的操作。我意识到vuex方法与计算属性略有不同,但重点是watch是在没有其他更好方法的情况下使用的。

订阅vuex方法的主要好处与最初使用vuex的原因相同:存储的抽象和可预测数据流的强制执行。

在您的示例中,//Do something cool部分将被抽象到您的vuex函数中,这将使您的组件更简单,也将使该特定功能可重用。

为什么使用vuex作为存储,而不使用其访问器方法?我认为这类似于使用vue路由器,但仍然在组件方法中进行URL操作。

最新更新