实现本地存储函数useLocalStorage

 我们经常需要使用 LocalStorage API,一个好用的可组合函数封装将帮助我们更好地使用它,让我们开始吧 👇:

<script setup lang='ts'>import { ref, watch } from "vue"/*** Implement the composable function* Make sure the function works correctly
*/
function useLocalStorage(key: string, initialValue: any) {const value = ref(initialValue)watch(value,(val)=>{localStorage.setItem(key,val)},{immediate:true})return value
}const counter = useLocalStorage("counter", 0)// We can get localStorage by triggering the getter:
console.log(counter.value)// And we can also set localStorage by triggering the setter:const update = () => counter.value++</script><template><p>Counter: {{ counter }}</p><button @click="update">Update</button>
</template>

其中的watch可以修改为以下方式:

watchEffect(() => {localStorage.setItem(key, value.value)
})// watchEffect自动添加了immediate:true

watchEffect:立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行。

watchEffect的特点可以查看watchEffect()和effectScope()-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端随机验证码安全验证sdk

前端随机验证码安全验证sdk 前言介绍一、效果展示二、使用步骤1.引入库2.参数说明3.方法与事件说明4.如何通过API获取当前用户的验证状态 ​ 前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 前言 验证码&#xff1a;是一种校验区分用户是…

vue项目打包优化:缩小体积productionSourceMap设置,使用cdn加速

文章目录 一、vue项目打包体积大优化之productionSourceMap设置1、productionSourceMap 的作用2、禁用 productionSourceMap3、关闭 productionSourceMap4、配置 productionSourceMap 二、vue-cli打包之性能优化-使用cdn加速1、CDN加速是什么2、CDN加速具有以下优点&#xff1a…

Visual Studio 新特性:对 include 指令进行智能诊断

今天&#xff0c;我们很高兴地宣布新功能&#xff1a;#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能&#xff0c;您可以获取到有关每个 include 的引用和生成时间的详细信息&#xff0c;从而更好地了解 #include 指令的行为。 &g…

git仓库操作之一:git仓库修改名称

1 先修改“Project name"方法如下&#xff1a; 2 再修改“下载地址和下载后的项目名称”方法如下&#xff1a; 这样就修改完成了。

PhpPythonC++圆类的实现(OOP)

哎......被投诉了 &#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d; 其实也不是小编不更&#xff0c;这不是期末了吗&#xff08;zhaojiekou~~&#xff09;&#xff0c;而且最近学的信息收集和ctf感觉好像没找到啥能更的&#xff08;不过最经还是在考虑更一…

JAVA销售数据决策管理系统源码

JAVA销售数据决策管理系统源码 基于BS&#xff08;Extjs Strus2springhibernate Mysql&#xff09;的销售数据的决策支持 主要的功能有 系统功能具体内容包括基础资料、进货管理、出货管理、库存管理、决策分析、系统管理。

活水计划丨改善老年营养,促进老年健康

在中国乡村发展基金会、腾讯公益的支持下&#xff0c;1月10日上午辉县义工联合共济医院&#xff0c;在我市易地搬迁佳怡社区开展“乐伴银龄 社区共建”项目——“老年常见病健康知识讲座”活动。 通过制作宣传横幅、发放科普手册等方式&#xff0c;为协同推进健康中国和积极应对…

《AI基本原理和python实现》栏目介绍

一、说明 栏目《AI基本原理和python实现》的设计目的是为了实现相关算法的python编程。因为用python实现AI需对相关的python库进行全方位了解&#xff0c;本栏目基本包含了【机器学习】相关的经典算法&#xff0c;除此之外还包括了数据分析、时间序列等一些概念和相关python代码…

【SpringCloud Alibaba】Nacos Config配置管理与Gateway 网关

目录 一、Config 远程配置 1.1 config 介绍 1.2 bootstrap.yml 配置文件 二、Gateway 网关 2.1 gateway 介绍 2.2 gateway 使用 2.2.1 方式一 2.2.2 方式二&#xff08;动态路由&#xff09; 一、Config 远程配置 1.1 config 介绍 微服务意味着要将单体应用中的业务拆分…

【Linux】Ubuntu 解压 zip、z01、z02等压缩文件的方法,Linux如何解压分卷压缩的

zip分卷压缩&#xff0c;在windows上压缩来的&#xff0c;如何解压这种文件&#xff1a; -rw-rw-r-- 1 20401094656 Dec 10 20:06 FFHQ.z01 -rw-rw-r-- 1 20401094656 Dec 10 20:10 FFHQ.z02 -rw-rw-r-- 1 20401094656 Dec 10 23:22 FFHQ.z03 -rw-rw-r-- 1 20401094656 Dec 10…

PyQt QTextEdit 详解

PyQt QTextEdit 详解 QTextEdit 是 PyQt 中用于编辑和显示多行文本的组件。它允许用户输入、编辑和格式化文本&#xff0c;并支持丰富的文本编辑功能。以下是关于 QTextEdit 的一些详细解释和示例&#xff1a; 创建 QTextEdit 对象&#xff1a; 要创建一个 QTextEdit 对象&a…

5.MapReduce之Combiner-预聚合

目录 概述本地预计算 Combiner 意义实践前提代码日志观察 结束 概述 在 MR、Spark、Flink 中&#xff0c;常用的减少网络传输的手段。 通常在 Reducer 端合并&#xff0c;shuffle 的数据量比在 Mapper 端要大&#xff0c;根据业务情况及数据量极大时&#xff0c;将大幅度降低效…

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-3(1) 刚体的位形 Configuration of Rigid Body

本文仅供学习使用&#xff0c;总结很多本现有讲述运动学或动力学书籍后的总结&#xff0c;从矢量的角度进行分析&#xff0c;方法比较传统&#xff0c;但更易理解&#xff0c;并且现有的看似抽象方法&#xff0c;两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…

pyqt treeWidget树生成

生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…

K8S容器编排高级应用

K8S容器编排高级应用 1.Pod控制器 pod控制器帮助我们自动管理pod&#xff0c;并满足期望的pod数量。pod控制器通过label标签来管理pod。在资源文件中通过selector来配置选择器&#xff0c;通过kind来配置控制器。一般我们的应用在生产环境用k8s一定要用pod控制器管理pod而不是…

Intellij-idea 如何编译maven工程

在 IntelliJ IDEA 中编译 Maven 工程是一个相对直接的过程。以下是基本步骤&#xff1a; 1. 打开或导入 Maven 项目 如果您已经有一个现有的 Maven 项目&#xff0c;可以直接在 IntelliJ IDEA 中打开它。选择 File > Open&#xff0c;然后浏览到您的 Maven 项目文件夹&…

SIP-2401VP SIP音频广播模块SIP-2401VP SIP号角音柱音箱解码poe广播播放核心板

SV-2401VP和SV-2403VP网络音频模块是一款通用的独立SIP音频功能模块&#xff0c;可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议和音频编解码协议&#xff0c;可用于VoIP和IP寻呼以及高质量音乐流媒体播放等应用。同时…

pythroch abaconda 安装 cuda、版本确定、pytorch 安装

一、简述 公司有一个深度学习的项目&#xff0c;身上也没有其他项目&#xff0c;恰好乘着个机会学一下pytorch 和YOLOv8. 1、下载abaconda https://repo.anaconda.com/archive/ 2、安装 环境变量要✔ 其他一直下一步 3、测试 (base) C:\Users\alber>conda -V cond…

leaflet学习笔记-带有方位角信息的圆的绘制(七)

前言 项目中有一个需求&#xff0c;就是需要绘制一个圆&#xff0c;并且绘制的时候还要设置方位角&#xff0c;最后返回圆的坐标集合和方位角。本功能使用Leaflet-GeomanTurf.jsleaflet实现。 方位角简介 在陆地导航中&#xff0c;方位角通常表示为 alpha、α&#xff0c;并定…

Java获取时间,自动给创建时间创建人等赋值

ApiOperation("添加")PostMapping()public ApiResult<?> save(RequestBody FeePropertyRoomArea feePropertyRoomArea) {User usergetLoginUser();LocalDateTime localDateTime LocalDateTime.now();feePropertyRoomArea.setCreateTime(localDateTime);feePr…