HelloWorld.vue 改造成自己的页面
<template>
<element>
<br>
<input v-model="msg" @keydown="doAdd($event)"/><button @click="addTitle()">添加列表</button>
<div>{{msg}}</div>
<hr>
<br>
<h3>所有列表</h3>
<ul>
<li v-for="item in list" v-if="!item.check">
<input type='checkbox' v-model="item.check" @change="saveList()"/>{{item.title}}
</li>
</ul>
<hr>
<br>
<h3>已选列表</h3>
<ul>
<li v-for="(item,key) in list" v-if="item.check">
<input type='checkbox' v-model="item.check" @change="saveList()"/>{{item.title}} <button @click="del(key)">删除</button>
</li>
</ul>
</element>
</template>
<script>
import storage from '../model/storage.js';
console.log(storage);
export default {
name: 'HelloWorld',
data () {
return {
visible: false,
msg: 'hello vue',
list: []
}
},
methods:{
addTitle(){
console.log(this.msg);
this.list.push({
title:this.msg,
check:false
})
storage.set('list',this.list);
},
doAdd(e){
console.log(e);
if(e.keyCode==13){
this.list.push({
title:this.msg,
check:false
})
}
storage.set('list',this.list);
},
del(index){
this.list.splice(index,1);//删除index索引位置的元素
storage.set('list',this.list);
},
saveList(){
storage.set('list',this.list);
}
},
mounted(){
//生命钩子函数 VUE页面刷新就会加载
console.log("mounted method executed");
var storageList = storage.get('list');
if(storageList){
this.list = storageList;
}
}
}
</script>
2.storage 模块 封装缓存
var storage={
set(key,val){
localStorage.setItem(key,JSON.stringify(val));
},
get(key){
return JSON.parse(localStorage.getItem(key));
},
remove(key){
localStorage.removeItem(key);
}
}
export default storage;
博客介绍了将HelloWorld.vue改造成自定义页面的过程,包含输入框、添加列表、显示所有列表和已选列表等功能,还实现了删除操作。同时封装了storage模块用于缓存数据,提供了设置、获取和移除缓存的方法。

3128

被折叠的 条评论
为什么被折叠?



