【问题标题】:How to pass computed property from component somewhere else如何从其他地方的组件传递计算属性
【发布时间】:2017-10-01 13:47:48
【问题描述】:

我有来自官方网站的工作示例。

Example

 computed: { filteredData: function () {} )

如何全局获取filteredData(计算属性)?特别是如果我想将它发送到其他地方。 demo.$store 仅包含原始属性,未计算。我看到实现这一目标的唯一方法是 demo.$children[0].filteredData。但这并不纯粹。顺便说一句,我正在使用 vuex。

【问题讨论】:

标签: vuejs2 vue-component vuex


【解决方案1】:

计算数据仅适用于当前组件。但是,您可以在 Vuex 中使用 getters 并将其作为计算属性导入到需要的地方。

在 vuex 中,你声明这个:

getters: {
  filteredData (state) {
    return state.data.filter(x => x)
  }
}

然后,在你需要的地方,你刚刚导入:

import { mapGetters } from 'vuex'
export default {
  // ...
  computed: {
    ...mapGetters({
      filteredData
    })
  }
  // ...
}

【讨论】:

  • 谢谢,但对此感到失望。如果将计算放在 Vuex.store 中会很棒
  • 但是属性(数据、计算、道具)是特定于组件的。如果你需要在 vuex 中计算东西,你可以使用 getter。
  • 是否可以为此使用 EventBus 而不是 vuex?
猜你喜欢
  • 2018-05-12
  • 1970-01-01
  • 2020-02-05
  • 1970-01-01
  • 2016-03-03
  • 2011-02-14
  • 2020-09-01
  • 1970-01-01
  • 2018-06-15
相关资源
最近更新 更多