Vue.js之todolist

  1. 首先在src文件夹下面建一个model的子文件夹, 在model文件夹下面新建一个storage.js的文件.
    在这里插入图片描述
  2. 书写storage.js的逻辑
//封装操作本地localstorage本地存储方法,模块化文件
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;
  1. 在App.js文件中调用storage.js
<template>
    <div class="app">
        <input type="text" placeholder="pls input" v-model="todo" @keydown="addData($event)">
        <hr>
        <h2>进行中</h2>
        <ul>
            <li v-for="(item,key) in list" v-if="!item.checked">
                 <input type="checkbox" v-model="item.checked" @change="saveData()">{{item.title}}<button @click="deleteData(key)">Delete</button>
            </li>
        </ul>
        <h2>已完成</h2>
        <ul>
            <li v-for="(item,key) in list" v-if="item.checked">
                <input type="checkbox" v-model="item.checked" @change="saveData()">{{item.title}}<button @click="deleteData(key)">Delete</button>
            </li>
        </ul>
    </div>
</template>

<script>
import storage from './model/storage.js';  //在script中引入storage.js
export default {
    data(){
        return {
           todo:'', 
           list:[
               {
                   title: 'TDC',
                   checked: false
               },
               {
                   title: 'OMD',
                   checked: true
               }
           ]
        }
    },
    methods:{
        deleteData(key){
            this.list.splice(key,1);
            //localStorage.setItem('list',JSON.stringify(this.list));  //这个是不创建storage.js的原始写法
            storage.set('list',this.list);    //在方法中添加缓存
        },
        addData(e){
            console.log(e.keyCode)
            if(e.keyCode==13)
            {
                this.list.push({
                    title: this.todo,
                    checked:false
                })
                this.todo='';    
            }
            //localStorage.setItem('list',JSON.stringify(this.list));
            storage.set('list',this.list);  //在方法中添加缓存
        },
        saveData(){
            //localStorage.setItem('list',JSON.stringify(this.list));
            storage.set('list',this.list);  //在方法中添加缓存
        }
    },
    mounted(){
        //var list=JSON.parse(localStorage.getItem('list'));
        var list=storage.get('list');   //生命周期函数,也叫钩子函数获取缓存的结果
        if(list)
        {
            this.list=list;
        }
    }
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值