2017-10-05 123 views
1

什么是从组件中聆听店内吸气剂的正确方法?商店取消订阅与观察者

手表是否应该使用,还是应该订阅?

这是目前我在做什么:

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

是什么在两个优点有什么区别?

回答

1

根据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操作。

+0

是的,但是这样做,使用手表还是订阅有什么区别? – Sean

相关问题