Vuex里保存从后端获取的全局数据,按需加载要怎么做?

Vuex里保存从后端获取的全局数据,按需加载要怎么做?

我们后端给出了一些接口,用于获取全局共享的数据,比如状态集合:

[

{

label: '待发货',

status: 1

},

{

label: '已发货',

status: 2

}

]

我想在vuex中保存这些数据,但是为了节约性能,我要在用到的时候才调接口获取。

我想过在需要这些数据的时候做判断,如果数据是空的就dispatch一个action去获取数据,但是如果每个页面都需要这个数据,每个页面都要判断一下,并且dispatch,就会有很多冗余代码。

遂请教一下大伙有没有更好的解决方案?


回答:

我这边也有这种使用场景;我目前的做法是每个用到的地方都dispatch一下。因为我没没找到更加方便的写法。

store:

export default {

namespaced: true,

state:{

platformList:[]

},

mutations: {

setPlatformList(state, list) {

state.platformList = list

}

},

actions: {

getPlatformList({ commit, state }){

return new Promise((resolve, reject) => {

if(state.platformList.length){

resolve(state.platformList.length)

return

}

api.get("platform/list").then(({data}) => {

commit('setPlatformList',data)

resolve(data)

}).catch(reject)

})

}

}

}

然后在使用的vue文件中:

mounted() {

this.$store.dispatch("platform/getPlatformList");

}

以上是 Vuex里保存从后端获取的全局数据,按需加载要怎么做? 的全部内容, 来源链接: utcz.com/p/936488.html

回到顶部