美文网首页
H5 localstorage本地缓存数据的封装以及在vue中的

H5 localstorage本地缓存数据的封装以及在vue中的

作者: 音乐与咖啡Bean | 来源:发表于2020-02-29 20:39 被阅读0次

vue 中常用的 每次增加数据   要缓存 每次删除数据也要缓存

storage.js 文件

<template>

    <div id="app">

        <input type="text" v-model="todo" @keydown="doAdd($event)" />

        <hr />

        <br />

        <h2>进行中</h2>

        <ul>

            <li v-for="(item, key) in list" v-if="!item.checked">

                //添加一个改变的事件

                <input

                    type="checkbox"

                    v-model="item.checked"

                    @change="saveList()"

                />

                {{ item.title }} --

                <button @click="removeData(key)">删除</button>

            </li>

        </ul>

        <br />

        <br />

        <h2>已完成</h2>

        <ul>

            <li v-for="(item, key) in list" v-if="item.checked">

                //添加一个改变的事件

                <input

                    type="checkbox"

                    v-model="item.checked"

                    @change="saveList()"

                />

                {{ item.title }} --

                <button @click="removeData(key)">删除</button>

            </li>

        </ul>

    </div>

</template>

<script>

import storage from './storage.js';

// console.log(storage);

export default {

data () {

  return {

    todo:'' ,

    list: []

  }

},

methods:{

  doAdd(e){

    // console.log(e);

    if(e.keyCode==13){

      this.list.push({

        title:this.todo,

        checked:false

      })

      }

  storage.set('list',this.list);   //添加数据要缓存

  },

  removeData(key){

    this.list.splice(key,1)

    storage.set('list',this.list);  //删除数据要缓存

  },

  saveList(){                //change事件

    storage.set('list',this.list);  //要缓存

  }

},

//获取缓存数据

mounted(){ /*生命周期函数 vue页面刷新就会触发的方法*/  mounted 生命周期在载入之后就加载数据

  var list=storage.get('list');

  if(list){ /*注意判断*/ 建议先判断缓存的数据存不存在

    this.list=list;

//或者:this.list=storage.get('list')

  }

}

}

</script>

<style lang="scss">

.finish {

    li {

        background: #eee;

    }

}

</style>

相关文章