教你在Vue3中使用useStorage轻松实现localStorage功能

 更新时间:2023年06月15日 10:46:34   作者:Emo_TT  
这篇文章主要给大家介绍了关于如何在Vue3中使用useStorage轻松实现localStorage功能的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友可以参考下

VueUse 介绍

VueUse文档:Get Started | VueUse

VueUse是基于Vue3的Composition API的实用函数的集合,useStorage是其中的一个函数。我们可以使用useStorage来实现我们的localStorage功能。

安装

npm i @vueuse/core

使用CDN

<script src="https://unpkg.com/@vueuse/shared"></script>
<script src="https://unpkg.com/@vueuse/core"></script>

useStorage()的用法

useStorage()将要用于引用的键名作为第一个参数传递,将要保存的值作为第二个参数传递。

值的保存、获取、删除

localStorage设置setItem()来保存值,用getItem()来获取值,用removeItem来删除值如下:

<script setup >
   import {ref} from "vue";
   const counter = ref('消息')
   //保存值
   localStorage.setItem('counter',counter.value)
   //获取值
   const data = localStorage.getItem('counter')
   console.log('data',data)
   //删除值
   localStorage.removeItem('counter')
</script>

useStorage()只需要一个就可以进行值的保存和获取,如下,用法:

const storedValue = useStorage('key', value)

例子:

 const msg = ref('你好')
   //保存值
   useStorage('msg',msg.value)
   //获取值
   const msgData = useStorage('msg')
   console.log('msgData',msgData.value)
   //删除
   const clear = () => {
     msg.value = null
   }

useStorage()自定义序列化

默认情况下,useStorage将根据提供的默认值的数据类型智能地使用相应的序列化程序。例如,JSON.stringify/JSON.parse将用于对象,Number.toString/parseFloat用于数字等。 如下:

import { useStorage } from '@vueuse/core'
useStorage(
  'key',
  {},
  undefined,
  {
    serializer: {
      read: (v: any) => v ? JSON.parse(v) : null,
      write: (v: any) => JSON.stringify(v),
    },
  },
)

以上代码,我们设置对象的名称为key,初始值为空对象{},如果存储中没有key的值,则返回null。在写入时,将对象序列化为JSON字符串。

补充知识:Vue_localStorage本地存储和本地取值解决方法。

Vue本地存储(3种)

① localStorage(长期存储)

存:localStorage.setitem('key',data)

取:localStorage.getitem('key')

② sessionStorage(临时存储)

存:sessionStorage.setitem('key',data)

取:sessionStorage.getitem('key')

③ cookie(有时效性)

一、共同点:

①都可以存储,并且存储只跟域名走、只存储在当前域名下。

二、不同点:

▶存储大小不同

①localStoage/sessionStorage  /5M

②cookie /4K 有时效性 如果没有设置时间会话关闭自动失效

③localStorage/不主动删除,数据一直在。

④sessionStorage/在浏览器打开期间存在,关闭当前会话即清空(刷新不清除)

sessionStorage和localStorage用法基本一致,引用类型的值需要转换成Json,我这里用localstorage来举例。

总结

到此这篇关于在Vue3中使用useStorage轻松实现localStorage功能的文章就介绍到这了,更多相关Vue3实现localStorage功能内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • TSX常见简单入门用法之Vue3+Vite

    TSX常见简单入门用法之Vue3+Vite

    Vue3的确可以直接使用tsx开发,唯一需要处理的就是children,而且处理起来还是比较不爽的,下面这篇文章主要给大家介绍了关于TSX常见简单入门用法之Vue3+Vite的相关资料,需要的朋友可以参考下
    2022-08-08
  • 基于Vue3实现旋转木马动画效果

    基于Vue3实现旋转木马动画效果

    这篇文章主要为大家介绍了如何利用Vue3实现旋转木马的动画效果,文中的示例代码讲解详细,对我们学习Vue有一定的帮助,需要的可以参考一下
    2022-05-05
  • vue移动端的左右滑动事件详解

    vue移动端的左右滑动事件详解

    这篇文章主要为大家详细介绍了vue移动端的左右滑动事件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • maptalks+three.js+vue webpack实现二维地图上贴三维模型操作

    maptalks+three.js+vue webpack实现二维地图上贴三维模型操作

    这篇文章主要介绍了maptalks+three.js+vue webpack实现二维地图上贴三维模型操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue组件传值方式(props属性,父到子,子到父,兄弟传值)

    Vue组件传值方式(props属性,父到子,子到父,兄弟传值)

    这篇文章主要介绍了Vue组件传值方式(props属性,父到子,子到父,兄弟传值),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Vue3响应式陷阱之对象引用丢失导致的数据更新失效的解决方法

    Vue3响应式陷阱之对象引用丢失导致的数据更新失效的解决方法

    最近在开发一个表单配置功能时,遇到了一个诡异的 Bug:明明在函数中成功赋值了,console.log 也打印出了正确的值,但页面上就是不显示,经过一番排查,发现这是一个典型的 Vue 响应式陷阱,今天分享出来,希望能帮到遇到类似问题的同学,需要的朋友可以参考下
    2025-11-11
  • 一步步从Vue3.x源码上理解ref和reactive的区别

    一步步从Vue3.x源码上理解ref和reactive的区别

    vue3的数据双向绑定,大家都明白是proxy数据代理,但是在定义响应式数据的时候,有ref和reactive两种方式,如果判断该使用什么方式,是大家一直不很清楚地问题,下面这篇文章主要给大家介绍了关于从Vue3.x源码上理解ref和reactive的区别的相关资料,需要的朋友可以参考下
    2023-02-02
  • VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决

    VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决

    这篇文章主要介绍了VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Vue时间轴 vue-light-timeline的用法说明

    Vue时间轴 vue-light-timeline的用法说明

    这篇文章主要介绍了Vue时间轴 vue-light-timeline的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue computed计算属性总结记录

    Vue computed计算属性总结记录

    在vue中,有时候你需要对data中的数据进行处理,或者对抓取的数据进行处理之后再挂载呈现到标签中,这时候你就需要计算属性了,当然看到这里你可能还是不了解那下面我举几个实例并附代码解释
    2023-02-02

最新评论