- 首先在src文件夹下面建一个model的子文件夹, 在model文件夹下面新建一个storage.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;
- 在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';
export default {
data(){
return {
todo:'',
list:[
{
title: 'TDC',
checked: false
},
{
title: 'OMD',
checked: true
}
]
}
},
methods:{
deleteData(key){
this.list.splice(key,1);
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='';
}
storage.set('list',this.list);
},
saveData(){
storage.set('list',this.list);
}
},
mounted(){
var list=storage.get('list');
if(list)
{
this.list=list;
}
}
}
</script>