存储退订与观察者

肖恩

从组件中监听商店中的吸气剂的正确方法是什么?

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

这是我目前正在做的:

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

两者和优点有什么区别?

qw3n

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

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-router,但仍在组件方法中进行URL操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章