商店取消订阅与观察者
问题描述:
什么是从组件中聆听店内吸气剂的正确方法?商店取消订阅与观察者
手表是否应该使用,还是应该订阅?
这是目前我在做什么:
this.watcher_handle = this.$watch(() => {
return this.$store.getters.someValue;
}, (new_value, old_value) => {
// Do something cool
});
是什么在两个优点有什么区别?
答
根据documentation你想要做这样的事情。
import { mapGetters } from 'vuex'
export default {
// ...
computed: {
// mix the getters into computed with object spread operator
...mapGetters([
'doneTodosCount',
'anotherGetter',
// ...
])
}
}
这将是“正确的方式”。
有关由该组件执行异步或昂贵的操作watchers and computed properties并且当watchers should be used基本上之间的差的VUE文档会谈。我意识到vuex方法与计算属性略有不同,但是当没有其他更好的方法存在时,要使用watch
这一点。
订阅vuex方法的主要好处与您为什么首先使用vuex相同:抽象您的商店并强制执行可预测的数据流。
在您的示例中,//Do something cool
部分将被抽象为您的vuex函数,这些函数使您的组件更简单,并且可以使该特定功能可重用。
为什么使用vuex作为你的商店,然后不使用它的存取方法?我认为这与使用vue-router类似,但仍然在组件方法中进行URL操作。
是的,但是这样做,使用手表还是订阅有什么区别? – Sean