VUE

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)
})
View Code

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

原文地址:https://www.cnblogs.com/1285026182YUAN/p/15347457.html