vue ts 本地缓存数据

2024-09-06 17:20

本文主要是介绍vue ts 本地缓存数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vue ts 本地缓存数据

需求是:给每日最高热度的数据,每个用户弹窗三次,持续五秒
// 每日最高热度 弹窗三次
const popupKey = 'dailyPopupCount_';
const today = new Date().toISOString().split('T')[0]; // dailyPopupCount_2024-08-26
const popupCount = ref(parseInt(localStorage.getItem(`${popupKey}${today}`) || '0', 10));
export const showHost = ref(false); //最高热度弹窗
export const countdown = ref(0);
export let timer: number | null | any = null;
// 检查并更新弹窗显示状态
export const checkAndShowPopup = () => {if (popupCount.value < 3) {showHost.value = true;countdown.value = 5; // 初始化倒计时为5秒timer = setInterval(updateCountdown, 1000); // 每秒更新一次倒计时popupCount.value++;localStorage.setItem(`${popupKey}${today}`, popupCount.value.toString());}// 遍历 localStorage 中的所有项for (let i = localStorage.length - 1; i >= 0; i--) {const key = localStorage.key(i);if (key) {// 检查键是否以 dailyPopupCount_ 开头,并且是否不代表今天的日期if (key.startsWith(popupKey) && !key.endsWith(today)) {// 移除这个键localStorage.removeItem(key);}}}
};// 手动关闭弹窗
export const hidePopup = () => {showHost.value = false;if (timer) {timeFun();clearTime();}
};const timeFun = () => {// 隐藏弹窗并更新弹窗次数showHost.value = false;localStorage.setItem(`${popupKey}${today}`, popupCount.value.toString());
};const clearTime = () => {clearInterval(timer!);timer = null;
};// 更新倒计时
const updateCountdown = () => {if (countdown.value > 0) {countdown.value--;} else {timeFun();clearTime();}
};

这篇关于vue ts 本地缓存数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142640

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤