高防服务器

Vue中的Strorage本地化存储怎么实现


Vue中的Strorage本地化存储怎么实现

发布时间:2022-04-29 17:19:59 来源:高防服务器网 阅读:72 作者:iii 栏目:开发技术

本文小编为大家详细介绍“Vue中的Strorage本地化存储怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的Strorage本地化存储怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Storage本地化存储

存储优点:

  • 空间更大:cookie为4kb,storage为5mb

  • 节省网络流量:不会发送数据到服务器,直接存储在本地

  • 快速显示:存储在本地的数据+浏览器本地的缓存,比从服务器获取数据快得多

localStorage

  • 会永久存储会话数据,除非手动删除或者removeItem

  • 在所有的同源的窗口中存储的数据是共享的

  • 只能存储字符串类型的数据,复杂的对象数据必须借助JSON的stringfy和parse处理

sessionStorage

  • 在一个会话期内,存储会话数据,当关闭当前的会话页面(浏览器页面)时,数据就删除了

  • 存储的数据各会话窗口无法共享

  • 只能存储字符串类型的数据,复杂的对象数据必须借助JSON的stringfy和parse处理 

Strorage本地存储实例

在model文件夹下面新建一个storage.js

const storage = {    set(key,value){      sessionStorage.setItem(key,JSON.stringify(value));    },    get(key){      return JSON.parse(sessionStorage.getItem(key));    },    getForIndex(index){      return sessionStorage.key(index)    },    getKeys(){      let items = this.getAll();      let keys = [];      for(let index = 0;index<items.length;index++){        keys.push(items[index].key);      }    },    getLength(){      return sessionStorage.length;    },    getSupport(){      return (typeof (Storage) !== "undefined")?true:false;    },    remove(key){      sessionStorage.removeItem(key);    },    removeAll(){      sessionStorage.clear();    },    getAll(){      let len = sessionStorage.length;      let arr = [];      for(let i=0;i<len.length;i++){        const getKey =  sessionStorage.key(i);        const getVal = sessionStorage.getItem(getKey);        arr[i] = {          "key":getKey,          "val":getVal,        }      }      return arr;    },  };     export default storage;

创建store

import Vue from "vue";  import Vuex from "vuex";  import storage from "@/model/storage";     Vue.use(Vuex);     const store = new Vuex.Store({    state: {      //  存储token      token: '',      userName: '',      roleId:'',      staticRoute:[]//这个是本地路由    },       actions: {      setuserInfoFun(context, name){        context.commit('setuserInfo', name);      },      set_tokenFun(context, token){        context.commit('set_token', token)      },      del_tokenFun(context){        context.commit('del_token')      },      set_roleIdFun(context,id){        context.commit('set_roleId',id)      },      set_routerFun(context,route){        context.commit('set_router',route)      }    },     //  计算属性    mutations: {      //  修改token,并将token存入localStorage      set_token(state, token){        state.token = token;        storage.set('token', token);      },      del_token(state){        state.token = "";        storage.remove('token');      },      setuserInfo(state, userName){        state.userName = userName;      },      set_roleId(state,id){        state.roleId = id;      },      set_router(state,router){        state.staticRoute = router;        storage.set('route', router);      }    }  });     export default store;

读到这里,这篇“Vue中的Strorage本地化存储怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注高防服务器网行业资讯频道。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[