localStorage 存储demo 例子

localStorage 存储demo 例子

App.vue 文件 未封装版

<template>
  <div id="app">
    <input type="text" v-model="todo" @keydown="doAdd($event)" />
    <hr />
    <h2>进行中</h2>
    <br />
    <ul>
      <li v-for="(item,index) in list " :key="index" v-if="!item.checked">
        <input type="checkbox" v-model="item.checked" @change="savelist()" />
        我是第{{index+1}}个数据----{{item.title}} --------{{item.checked}}
        <button
          @click="removeData(index)"
        >删除</button>
      </li>
    </ul>
    <hr />
    <h2>已完成</h2>
    <br />
    <ul>
      <li v-for="(item,index) in list " :key="index" v-if="item.checked">
        <input type="checkbox" v-model="item.checked" @change="savelist()" />
        我是第{{index+1}}个数据----{{item.title}} --------{{item.checked}}
        <button
          @click="removeData(index)"
        >删除</button>
      </li>
    </ul>
  </div>
</template>

<script>

export default {
  data() {
    return {
      todo: "",
      list: []
    };
  },

  mounted() {
    var list = JSON.parse(localStorage.getItem("list"));
    console.log("list", list);
    if (list) {
      this.list = list;
    }
  },
  methods: {
    //点击 多选框 也要存一下 localStorage
    savelist() {
      localStorage.setItem("list", JSON.stringify(this.list));
    },
    // 添加
    doAdd(e) {
      if (e.keyCode == 13) {
        //如果按键的keyCode 是13 就执行添加操作
        this.list.push({
          //在数组后面push
          title: this.todo, //input框输入的内容
          checked: false //默认为false 不选中
        });
        localStorage.setItem("list", JSON.stringify(this.list)); //添加后 把这个list 数组转化成json格式字符串,存起来
      }
    },
    // 删除
    removeData(key) {
      this.list.splice(key, 1); //根据 key 索引 删除数组的元素
      localStorage.setItem("list", JSON.stringify(this.list)); // 删除后 把数组再一次存起来
    }
  }
};
</script>

<style lang="scss">
.finish {
  li {
    background: #eee;
  }
}
</style>

App.vue 文件 封装版

<template>
  <div id="app">
    <input type="text" v-model="todo" @keydown="doAdd($event)" />
    <hr />
    <h2>进行中</h2>
    <br />
    <ul>
      <li v-for="(item,index) in list " :key="index" v-if="!item.checked">
        <input type="checkbox" v-model="item.checked" @change="savelist()" />
        我是第{{index+1}}个数据----{{item.title}} --------{{item.checked}}
        <button
          @click="removeData(index)"
        >删除</button>
      </li>
    </ul>
    <hr />
    <h2>已完成</h2>
    <br />
    <ul>
      <li v-for="(item,index) in list " :key="index" v-if="item.checked">
        <input type="checkbox" v-model="item.checked" @change="savelist()" />
        我是第{{index+1}}个数据----{{item.title}} --------{{item.checked}}
        <button
          @click="removeData(index)"
        >删除</button>
      </li>
    </ul>
  </div>
</template>

<script>
import storage from "./model/storage.js";

export default {
  data() {
    return {
      todo: "",
      list: []
    };
  },

  mounted() {
    var list = storage.get("list");
    // var list = JSON.parse(localStorage.getItem("list"));
    console.log("list", list);
    if (list) {
      this.list = list;
    }
  },
  methods: {
    //点击 多选框 也要存一下 localStorage
    savelist() {
      storage.set("list", this.list);
      // localStorage.setItem("list", JSON.stringify(this.list));
    },
    // 添加
    doAdd(e) {
      if (e.keyCode == 13) {
        //如果按键的keyCode 是13 就执行添加操作
        this.list.push({
          //在数组后面push
          title: this.todo, //input框输入的内容
          checked: false //默认为false 不选中
        });
        storage.set("list", this.list);
        // localStorage.setItem("list", JSON.stringify(this.list)); //添加后 把这个list 数组转化成json格式字符串,存起来
      }
    },
    // 删除
    removeData(key) {
      this.list.splice(key, 1); //根据 key 索引 删除数组的元素
      storage.set("list", this.list);
      // localStorage.setItem("list", JSON.stringify(this.list)); // 删除后 把数组再一次存起来
    }
  }
};
</script>

<style lang="scss">
.finish {
  li {
    background: #eee;
  }
}
</style>

storage 文件

import storage from “./model/storage.js”;

//封装操作localstorage本地存储的方法  模块化的文件
// nodejs  基础

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

发布了63 篇原创文章 · 获赞 5 · 访问量 826

猜你喜欢

转载自blog.csdn.net/wuj1935/article/details/102982305
今日推荐