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

相关文章

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现