场景:同一个接口在多个页面调用
问题:重复访问,导致对服务器的重复请求,降低用户体验。
解决:使用vuex的异步处理,第一次访问时将数据缓存,下次访问直接从缓冲中获取,提高访问速度
注意:刷新页面时,会把当前页面占用的缓存释放掉,再重新加载新的缓存,如果想要刷新不重新加载,需要做vuex持久化缓存处理
store/index.js文章来源:https://www.toymoban.com/news/detail-532098.html
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
import { getDynamicData } from "@/APIs/flowSegmentation";
const state = {
professionList: null,
};
const getters = {
professionList: (state) => {
if (!state.professionList) {
Store.dispatch("getprofessionList");
}
return state.professionList;
},
};
const mutations = {
SET_PROFESSION_LIST: (state, data) => {
state.professionList = data;
},
};
const actions = {
async getprofessionList({ commit }) {
const res = await getDynamicData("flow_segmentation");
commit("SET_PROFESSION_LIST", res.data);
},
};
const modules = {};
const Store = new Vuex.Store({
state,
getters,
mutations,
actions,
modules,
});
export default Store;
使用文章来源地址https://www.toymoban.com/news/detail-532098.html
computed: {
...mapGetters([
"professionList",
]),
},
1.首次访问调用state中getters的professionList方法
2.此时state中professionList为null,则调用action中getprofessionList方法来获取数据
3.再把获取后的数据在getters返回给计算属性
4.当后续再次使用的时候由于已有数据,则直接返回不需要再次调用接口
到了这里,关于vuex缓存接口返回的数据,只在首次使用调用接口,之后使用vuex中的缓存值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!