可以把ajax请求的数据存到vuex的state里面吗?

需求:

我有一组数据通过ajax请求而来,但多个组件内都有用到。
我应该怎么做让这组数据任何组件都能用到呢?

vuex理解不多。

现有Code:

store.js

let actions = {

    updateLoopImg (context) {

        context.commit('getLoopImg');

    }

}


let mutation = {

    getLoopImg(state) {

        this.axios.get("api/setting/get_loop_img")

            .then(res => {

                state.loop_sec = res.data.loop_sec;

                state.loop_img = res.data.data.loop_img;

            })

    }

}


// ------------------------------------------- 

a.vue

this.$store.dispatch("updateLoopImg");


// -------------------------------------------

error:

vuex.esm.js?edaa:364 [vuex] unknown mutation type: getLoopImg


繁花不似锦
浏览 461回答 1
1回答

动漫人物

你可以指定一个Mutation 在其中发起ajax 然后拿到了res之后就state.xx = res接下来在某个你需要的hook里commit一下这个mutation 去驱动他之后就可以在组件内部 this.$store.state.xx 获取到这个数据 很简单的 如果你需要异步的一些操作就需要actions
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript