VueJS组件之间如何复用axios调用得到的数据?

How to reuse data obtained by axios calls between VueJS components?

如果这个问题已经被问到,我很抱歉,但我似乎找不到清楚解释我的问题。

问题:我有一个网页显示客户的问题。此页面需要客户端 ID 或问题编号等数据才能在页面的不同部分显示它(header、菜单、body)。这个数据是通过axios调用得到的。

所以我有多个组件需要来自同一个 axios 调用的相同数据。

我不明白如何进行 one axios 调用,例如客户端 ID,并与多个组件共享它而不是进行 axios 调用 每次 我都需要数据。

mixin 是解决方案吗?

我试过使用mixin:

Vue.axiosGet({
    methods: {
        request: function(url) {
            return axios.get(url).then(response => {
                return response.data;
            });
        }
    }
});

但现在我不知道在哪里或如何存储我将获得的数据。

编辑:我忘了说清楚我不想使用 VueX。

你说你不想用Vuex,为什么呢?我建议您使用 Vuex 商店来实现您正在寻找的东西。一个 vuex store 将 cache/hold 信息放在里面,这意味着你可以很容易地在不同的页面上访问它。 Vuex 将解决您的问题并允许您进行一次调用,然后访问数据。无需重新发明轮子,这是实现您所需的有效方法。

如果你真的不想使用 Vuex,总有类似 nedb 的解决方案,但我强烈推荐 Vuex。