VUE - 本地储存
Vue插件,用于从Vue上下文中使用本地Storage,会话Storage和内存Storage
一个vue封装的本地储存的方法。
1. 安装插件
yarn add vue-ls --save-dev
2. 在main.js 中引入
import Storage from "vue-ls"; let options = { namespace: 'vuejs__', // key键前缀 name: 'ls', // 命名Vue变量.[ls]或this.[$ls], storage: 'local', // 存储名称: session, local, memory }; Vue.use(Storage, options); // 或 Vue.use(Storage);
main.js
import Vue from 'vue' import App from './App.vue' import Storage from "vue-ls"; let options = { namespace: 'vuejs__', // key键前缀 name: 'ls', // 命名Vue变量.[ls]或this.[$ls], storage: 'local', // 存储名称: session, local, memory }; Vue.use(Storage, options); // 或 Vue.use(Storage); new Vue({ el: '#app', render: h => h(App) })
3. 在组件中使用:page-vue-ls.vue
<template> <div>sd</div> </template> <script> import Vue from "vue"; export default { data() { return {}; }, mounted() { debugger; Vue.ls.set("foo", "boo"); // 设置有效期 Vue.ls.set("foo", "boo", 60 * 60 * 1000); //有效1小时 Vue.ls.get("foo"); Vue.ls.get("boo", 10); // 如果没有设置boo返回默认值10 let callback = (val, oldVal, uri) => { debugger; console.log("localStorage change", val); }; Vue.ls.on("foo", callback); //侦查改变foo键并触发回调 Vue.ls.off("foo", callback); //不侦查 Vue.ls.set("foo", "booc"); Vue.ls.remove("foo"); // 移除 }, }; </script>
4. 其他用法
Vue.ls.get(name, def) 返回storage中 name值。在返回之前,内部解析JSON中的值,def: 默认null, 如果为设置则返回 name . Vue.ls.set(name, value, expire) 在storage设置 name 的 value .并将 value 转化为JSON,expire: 默认为 null , name 有效时间以毫秒为单位 Vue.ls.remove(name) 从storage中移除 name . 成功移除 true, 否则返回false. Vue.ls.clear() 清除storage. Vue.ls.on(name, callback) 持续监听 name 在其他标签上的更改,更改时触发 callback , 传递以下参数: newValue: 当前storage中 name , 从持久化的JSON中解析 oldValue: 旧的storage中 name , 从持久化的JSON中解析 url: 修改来自选项卡的URL Vue.ls.off(name, callback) 删除以前的侦听器 Vue.ls.on(name, callback)
引用:https://www.jianshu.com/p/ab7f67878279
代码:https://gitee.com/wuxincaicai/prod-vue/PCommon/page-vue-ls