• vue缓存到localStorage


    构建模块

    // 存储每个商家是否收藏
    // id是商家id  
    // key是要存储的键favorite
    // value是存储的值布尔
    export function saveToLocal(id, key, value) {
      // 先把__seller__存储到h5缓存localStorage中
      let seller = window.localStorage.__seller__;
      // 如果seller是第一次存储
      if (!seller) {
        // 创建数据结构 seller = {id: {}}
        seller = {};
        seller[id] = {};
      } else {
        // 存储的JSON字符串转换为json对象
        seller = JSON.parse(seller);
        // 如果localStorage的__seller__中没有这个商家id
        if (!seller[id]) {
          // 就给它的值创建为对象
          seller[id] = {};
        }
      }
      // 最终把是否收藏的值存储到 localStorage中 商家id为123的key键中
      seller[id][key] = value;
      // 将JSON转换成为JSON字符串
      window.localStorage.__seller__ = JSON.stringify(seller);
      // 存储后的localStorage 就是 __seller__:"{"12345":{"favorite":true}}"
    };
    // 读取每个商家是否收藏
    // id是商家id  
    // key是要存储的键
    // def是当没有这个seller对象时返回def默认值
    export function loadFromLocal(id, key, def) {
      let seller = window.localStorage.__seller__;
      if (!seller) {
        return def;
      }
      // 读取之后要将JSON字符串转换成为JSON对象,同时拿到对应的id
      seller = JSON.parse(seller)[id];
      if (!seller) {
        return def;
      }
      let ret = seller[key];
      // 如果查询不到id就返回默认值
      return ret || def;
    };

    用的时候直接往里面传参

      methods: {
        toggleFavorite () {
          this.favorite = !this.favorite;
          // 使用
          saveToLocal(this.seller.id, 'favorite', this.favorite)
        },
      }
  • 相关阅读:
    uva 10369 Arctic Network
    uvalive 5834 Genghis Khan The Conqueror
    uvalive 4848 Tour Belt
    uvalive 4960 Sensor Network
    codeforces 798c Mike And Gcd Problem
    codeforces 796c Bank Hacking
    codeforces 768c Jon Snow And His Favourite Number
    hdu 1114 Piggy-Bank
    poj 1276 Cash Machine
    bzoj 2423 最长公共子序列
  • 原文地址:https://www.cnblogs.com/gr07/p/9105532.html
Copyright © 2020-2023  润新知