vue项目storage本地存储

1.在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;

2.创建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;

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue的watch选项可以用来侦听数据的变化,并在数据变化时执行相应的操作。本地存储是指浏览器提供的localStorage或sessionStorage,可以用来在浏览器中存储数据。 在Vue中,你可以使用watch选项来侦听本地存储的变化。首先,你需要在Vue实例的watch选项中定义一个函数,该函数会在本地存储的数据发生变化时被调用。在函数内部,你可以执行相应的操作,比如更新Vue实例中的数据或执行其他逻辑。 下面是一个示例代码,演示了如何使用watch选项侦听本地存储的变化: ```javascript new Vue({ data: { localStorageData: localStorage.getItem('myData') // 初始化数据为本地存储中的值 }, watch: { localStorageData(newValue) { // 当本地存储的值发生变化时被调用 console.log('本地存储的值发生了变化:', newValue); // 执行其他操作,比如更新Vue实例中的数据 this.myData = newValue; } }, created() { // 监听本地存储的变化 window.addEventListener('storage', (event) => { if (event.key === 'myData') { // 当本地存储的键为'myData'的值发生变化时,更新localStorageData this.localStorageData = event.newValue; } }); } }); ``` 在上面的代码中,我们首先在Vue实例的data选项中定义了一个名为localStorageData的属性,它的初始值为本地存储中的值。然后,在watch选项中定义了一个函数,当localStorageData发生变化时会被调用。在函数内部,我们可以执行相应的操作,比如更新Vue实例中的数据。 此外,我们还在Vue实例的created钩子函数中使用addEventListener方法监听了本地存储的变化。当本地存储的键为'myData'的值发生变化时,会触发storage事件,我们可以在事件处理函数中更新localStorageData的值。 希望以上解答对你有帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值