基于vue框架如何制作本地存储添加等常见操作
Admin 2022-07-12 群英技术资讯 820 次浏览
这篇文章主要讲解了“基于vue框架如何制作本地存储添加等常见操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于vue框架如何制作本地存储添加等常见操作”吧!本文实例为大家分享了vue实现本地存储添加删除修改的具体代码,供大家参考,具体内容如下
实现功能:
输入的内容添加到正在进行列表中,
双击修改功能,
点击esc键,取消,还是之前的内容,
点击回车,修改成功,
修改框失焦时修改成功,
选中按钮时进入已完成列表,未选中时在正在进行中列表,
点击删除进行删除当行,
本地存储下次打开上次添加的还在
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
*{
padding: 0;margin: 0;
}
ul{
list-style: none;
}
li{
width: 220px;
height: 40px;
border: 1px solid gainsboro;
margin-top: 4px;
display: flex;
justify-content: space-between;
align-items: center;
background-color: #6CE26C;
}
.del{
margin-right: 5px;
border: none;
width: 20px;
height: 20px;
background-color: #008200;
}
</style>
</head>
<body>
<div id="app">
<!-- 过滤输入内容首尾空白符 -->
<!-- 回车事件 -->
<input type="text" v-model.trim="temp" @keyup.enter="additem()"/>
<!-- 获取正在进行的数量 -->
<h3>正在进行中{{undolist.length}}</h3>
<ul class="list">
<!-- 将正在进行的内容遍历显示出来 -->
<li class="item" v-for="item in undolist" :key="item.name">
<div class="">
<!-- 多选框为未选中false状态 -->
<input type="checkbox" v-model="item.done" />
<!-- 默认为state是0,当双击时state为1,内容赋给tempEdit-->
<span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
<!-- input框内容为tempEdit的值,state=1时显示输入框,
点击esc时state为零隐藏,内容还是原来的值,不进行修改,
当回车时state为0就隐藏input框,将修改过得tempEdit,赋给item.name
当失焦时state为0就隐藏input框,将修改过得tempEdit,赋给item.name
-->
<input type="text" v-model="tempEdit" v-show="item.state==1"
@keyup.esc="item.state=0;tempEdit=item.name"
@keyup.enter="item.state=0;item.name=tempEdit"
@blur="item.state=0;item.name=tempEdit"
/>
</div>
<!-- 点击删除时删除其内容 -->
<button type="button" @click="removeitem(item)" class="del">X</button>
</li>
</ul>
<!-- 已完成数量 -->
<h3>已经完成{{doneList.length}}</h3>
<ul class="list">
<!-- 将已完成的内容遍历显示出来 -->
<li class="item" v-for="item in doneList" :key="item.name">
<div class="">
<!-- 多选框为选中true状态 -->
<input type="checkbox" v-model="item.done" />
<!-- 默认为state是0,当双击时state为1,内容赋给tempEdit-->
<span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
<!-- input框内容为tempEdit的值,state=1时显示输入框,
点击esc时state为零隐藏,内容还是原来的值,不进行修改,
当回车时state为0就隐藏input框,将修改过得tempEdit,赋给item.name
当失焦时state为0就隐藏input框,将修改过得tempEdit,赋给item.name
-->
<input type="text" v-model="tempEdit" v-show="item.state==1"
@keyup.esc="item.state=0;tempEdit=item.name"
@keyup.enter="item.state=0;item.name=tempEdit;"
@blur="item.state=0;item.name=tempEdit;"
/>
</div>
<!-- 点击删除时删除其内容 -->
<button type="button" @click="removeitem(item)" class="del">X</button>
</li>
</ul>
</div>
</body>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var vm=new Vue({
el:"#app",
data(){
return{
// 清单列表
// getItem是获取本地存储数据,
// ||"[]"如果获取不到转换为空的数组
list:JSON.parse(localStorage.getItem("list")||"[]"),
// 临时添加的数据存放处
temp:'',
// 修改框的临时数据存放处
tempEdit:''
}
},
methods:{
// 添加
additem(){
// 文本框为空时就返回
if(this.temp===""){return;}
// 添加到后面
this.list.push({
name:this.temp,
done:false,
state:0
})
// 清空临时框
this.temp="";
},
// 删除
removeitem(item){
// 弹框
var flag=window.confirm("确定要删除吗?");
if(flag){
// 查找符合条件元素的索引值
var ind=this.list.findIndex(value=>value.title===item.title);
// splice从第ind删除一个
this.list.splice(ind,1);
}
}
},
computed:{
// 通过计算把现有的list数据计算出已完成和未完成
// 未完成
undolist(){
// filter数组的过来函数,如果返回结果为真则当前遍历的数据保留
// 否则就会被过滤掉
return this.list.filter(item=>!item.done);
},
// 已完成
doneList(){
return this.list.filter(item=>item.done);
}
},
watch:{
"list":{
handler(){
// setItem设置本地数据
// JSON.stringify把js对象转换为json字符串
// JSON.prase把字符串转换为js对象
localStorage.setItem("list",JSON.stringify(this.list))
},
deep:true,
}
}
})
</script>
</html>

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了vue中配置scss全局变量的步骤,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
这篇文章主要为大家详细介绍了微信小程序下拉框组件使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
两个操作数都是字符串,比较ASCII编码(区分大小写)。一个为数字,另一个不是数字,转化为数字。NaN与任意数值比较均返回false(既不大于也不小于和等于)。
VUE+Element 前端应用实现国际化的处理还是非常方便的,一般在Main.js函数里面引入语言文件,然后在界面上进行一定的处理,把对应的键值转换为对应语言的语义即可。本篇随笔介绍在VUE+Element 前端应用中如何实现在界面快速的支持多语言国际化的处理逻辑代码。
这篇文章给大家分享的是用jQuery怎样判断是否有余数的内容,也就是进行除法运算时,判断是否整除,对大家学习if语句有一定的帮助,小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008