如何在同一视图中最好地处理组件之间的状态共享

时间:2017-02-06 14:01:45

标签: vue.js vue-component vuex

我的项目视图包含3个组件,<project-item><project-list><project-view>。所有这些组件都需要了解所选项目。

  • <project-item>保存特定项目的状态。此组件具有一个名为selected的属性,用于确定是否选择了项目。
  • <project-list>包含一个或多个项目项,并具有计算属性,用于检查子类型<project-item>以及选择了哪些项目。
  • <project-view>是一般视图,它只包含与UAC相关的导航和逻辑。

层次结构看起来像这样......

<project-view>
    <project-list>
        <project-item selected></project-item>
    </project-list>
</project-view>

分享该状态的最佳方式是什么,因为我觉得 vuex 是错误的选择,因为它不是全局状态。

我还尝试在<project-view>组件上使用计算属性来获取<project-list>组件上的选定项,但是尽管存在并且在范围内,它仍然会抛出错误。

2 个答案:

答案 0 :(得分:2)

如果您认为Vuex过度,那么请在此处查看我的答案 - 相同主题

VueJS access child component's data from parent

答案 1 :(得分:1)

Vuex是你的答案。 https://vuex.vuejs.org/en/intro.html

这是分享国家的解决方案。

您将创建商店,将您的州与商店联系起来,并使用行动/突变来与他们合作。

它将为您提供良好的状态共享基础,如果您需要,您可以轻松扩展。

祝你好运!