添加Caches缓存(发现/推荐 页面)

This commit is contained in:
zilong 2021-10-19 21:40:06 +08:00
parent 2905728772
commit 13137af6d3
3 changed files with 63 additions and 13 deletions

View File

@ -32,6 +32,7 @@ const store = useStore();
//localstorage
store.commit("loadSettings");
store.commit("loadCaches");
//route
const routeToken = pubsub.subscribe(

View File

@ -33,6 +33,20 @@ export default createStore({
);
})?.key;
},
cache:
(state) =>
(key, expire = 0) => {
if (state.caches[key]) {
if (
state.caches[key].time &&
(expire <= 0 ||
Date.now() - state.caches[key].time <
1000 * expire)
)
return state.caches[key].data;
}
return null;
},
},
mutations: {
//载入settings设置
@ -46,6 +60,17 @@ export default createStore({
saveLoaclSettings(state.settings);
},
//载入caches设置
loadCaches(state) {
const l = localStorage.getItem("zmusic.caches");
if (l) state.caches = JSON.parse(l);
},
//保存caches设置
saveCaches(state, caches) {
state.caches = { ...state.caches, ...caches };
saveLoaclCaches(state.caches);
},
//保存当前路由
saveCurrentRoute(state, currentRoute) {
state.settings.currentRoute = currentRoute;
@ -83,6 +108,9 @@ function saveLoaclSettings(s) {
JSON.stringify(s)
);
}
function saveLoaclCaches(s) {
localStorage.setItem("zmusic.caches", JSON.stringify(s));
}
function saveLoaclTheme(s) {
localStorage.setItem("zmusic.theme", JSON.stringify(s));
}

View File

@ -216,7 +216,7 @@ import {
import pubsub from "pubsub-js";
import ArtistsSpan from "@/components/ArtistsSpan.vue";
console.log("recommend 初始化");
// console.log("recommend ");
const store = useStore();
@ -224,39 +224,47 @@ const play = (id) => {
pubsub.publish("zp.play", { id, im: true });
};
//#region
//
//#region
let banners = ref([]);
banners.value = store.getters.cache('banners')
getBanner(0)
.then((res) => {
banners.value = res.data.banners;
store.commit("saveCaches", {
banners: { data: banners.value, time: Date.now() },
});
// console.log(banners.value);
})
.catch((err) => {
console.log("getBanner err", err);
});
//#endregion
//#region
let topSongs = ref([]);
// topSongs.value = store.getters.cache('topSongs')
if(store.getters.cache('topSongs'))
{
topSongs.value = store.getters.cache('topSongs')
console.log('载入Caches');
}
//
getTopSong()
.then((res) => {
topSongs.value = res.data.data.filter((item, index) => {
return index < 10;
});
store.commit("saveCaches", {
topSongs: { data: topSongs.value, time: Date.now() },
});
// console.log(topSongs.value);
})
.catch((err) => {
console.log("getTopSong err", err);
});
// onMounted(() => {
// console.log("onMounted");
// });
// onUnmounted(() => {
// console.log("");
// });
function songAlias(alias) {
if (alias.length > 0) return "[" + alias.join(",") + "]";
}
@ -269,27 +277,40 @@ function songArtists(artists) {
.join(" ");
}
}
//
//#endregion
//#region
let personalized = ref([]);
personalized.value = store.getters.cache('personalized')
getPersonalized(8)
.then((res) => {
personalized.value = res.data.result;
store.commit("saveCaches", {
personalized: { data: personalized.value, time: Date.now() },
});
// console.log(personalized.value);
})
.catch((err) => {
console.log("getPersonalized err", err);
});
//MV
//#endregion
//#region MV
let personalizedMV = ref([]);
personalizedMV.value = store.getters.cache('personalizedMV')
getPersonalizedMV()
.then((res) => {
personalizedMV.value = res.data.result;
store.commit("saveCaches", {
personalizedMV: { data: personalizedMV.value, time: Date.now() },
});
// console.log(personalized.value);
})
.catch((err) => {
console.log("getPersonalizedMV err", err);
});
//#endregion
</script>
<style lang="less" scoped>