前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7.模块化封装Storage实现缓存数据持久化

7.模块化封装Storage实现缓存数据持久化

作者头像
玩蛇的胖纸
发布2019-09-29 17:22:50
5030
发布2019-09-29 17:22:50
举报

1.模块化封装Storage实现缓存数据持久化

1.在src目录下新建目录model,在model目录下新建js文件取名storage.js

var storage={
    set(key,value){
        // 设置为本地缓存方法
      localStorage.setItem(key,JSON.stringify(value));
    },
    get(key){
        // 获取本地缓存方法
       return JSON.parse(localStorage.getItem(key)); 
    },
    remove(key){
        // 删除本地缓存方法
        localStorage.removeItem(key);
    }

}

export default storage;

2.在App.vue中引用:

<template>
  <div id="app">
    <!-- 监听键盘事件 -->
    <input type="text" v-model="todo" @keydown="AddText($event)">
    
    <br>
    <hr>

    <h2>未完成</h2>
    <ul>
      <li v-for="(item,index) in list" :key="index">
        <div v-if="!item.checkbox">
          <input type="checkbox" v-model="item.checkbox" @change="saveList()"> {{item.title}}---<button @click="RemoveText(index)">删除</button>
        </div>
      </li>
    </ul>
    <h2>已完成</h2>
    <ul>
      <li v-for="(item,index) in list" :key="index" class="finish">
        <div v-if="item.checkbox">
          <input type="checkbox" v-model="item.checkbox" @change="saveList()"> {{item.title}}---<button @click="RemoveText(index)">删除</button>
        </div>
      </li>
    </ul>
  
  </div>
</template>
<script>
// 引入模块
import storage from './model/storage.js';
export default {
  name: 'app',
  data () {
    return { 
      todo:'',
      list:[],
    }
  },
  methods:{
    AddText(e){
      if(e.keyCode==13){
        this.list.push({title:this.todo,checkbox:false})
        this.todo=''
      }
      // 设置为本地缓存
      storage.set('list',this.list);    
    },
    RemoveText(key){
      this.list.splice(key,1)
      storage.set('list',this.list);
    },
    saveList(){
      storage.set('list',this.list);
    }
  },
  mounted(){
    // 生命周期函数,vue页面刷新时触发
    // 读取本地缓存
    var list=storage.get('list');
    if(list){
      this.list=list
    }

  }

}
</script>
<style>
ul li{
list-style-type:none;
}
.finish{
 background-color: #eee
}
</style>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.模块化封装Storage实现缓存数据持久化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档