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

摘要:
item.checkbox“˃{{item.title}}---删除完成{item.title}}--删除//importmodule importstoragefrom'/model/storage.js';导出默认{name:“app”,data(){return{todo:“”,list:[],}},方法:{AddText{if{this.list.pushhis.todo=“”}//设置为本地缓存存储。集合;},RemoveText{this.list.plicestorage.set;},saveList(){storage.set;}},mounted(){//Lifecycle函数,在刷新vue页面时触发//读取本地缓存varlist=storage.se;if{thist.list=list}}ulli{list-style-type:none;}。完成{background color:#eee}
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>

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

免责声明:文章转载自《7.模块化封装Storage实现缓存数据持久化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring 远程调用工具类RestTemplateUtilsVS Code使用Git可视化管理源代码详细教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

十大接口

十大接口 一、Response响应封装 1.1封装 from rest_framework.response import Response class APIResponse(Response): def __init__(self, status=0, msg="ok", results=None, http_status=None, head...

C#系统缓存全解析

系统缓存有什么好处呢?举个简单的例子,你想通过网页查询某些数据,而这些数据并非实时变化,或者变化的时间是有期限的。例如查询一些历史数据。那么每个用户每次查的数据都是一样的。如果不设置缓存,ASP.NET也会根据每个用户的请求重复查询n次,这就增加了不必要的开销。所以,可能的情况下尽量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大大提供...

js和java中使用join来进行数组元素的连接

  合理地使用join来进行数组中元素的连接,代码简洁,比自己编码也更为方便。   js中join的用法 var arr = new Array(3) arr[0] = "a" arr[1] = "b" arr[2] = "c" arr.join(".") a.b.c ------------------ arr.join(",") a,b,c   ja...

Centos 7 解决free -m 下buff/cache缓存很高

Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中非常出色的一点,所以乍一看内存剩余的非常少,但是在程序真正需要内存空间时,linux会将缓存让出给程序使用,这样达到对内存的最充分利用,所以真正剩余的内存是f...

浅谈http中的Cache-Control,cdn缓存加速失败的原因

原文: https://blog.csdn.net/u012375924/article/details/82806617 前言我们用http访问时,会先发送一个请求,之后服务器返回一个应答,在Chrome的开发者工具(按F12或右击选择检查)中展现了整个过程: 第一部分General是概要,包含请求地址,请求方式,状态码,服务器地址以及Referrer...

消息队列之 ActiveMQ

简介 ActiveMQ 特点 ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。 它的设计目标是提供标准的、面向消息的、多语言的应用集成消息通信中间件。ActiveMQ 实现了 JMS 1.1 并提供了很多附加的特性,比如 JMX 管理、主从管理、消息组通信、消息优先级、延迟接收...