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来删除值如下:
- import {ref} from "vue";
-
- const counter = ref('消息')
- //保存值
- localStorage.setItem('counter',counter.value)
- //获取值
- const data = localStorage.getItem('counter')
- console.log('data',data)
- //删除值
- localStorage.removeItem('counter')
而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字符串。