vue实现todolist基本功能以及数据存储功能实例详解


Posted in Javascript onApril 11, 2019

实现todolist功能,具体实现如下:

可以实现对list添加、移除以及状态转变,其中添加功能既可以通过鼠标点击按钮实现,也可以通过回车键按下实现,通过使用v-model对checked的值进行双向绑定来完成状态的改变。在本次实际操作中仍存在一个小问题就是methods中函数调用,在完成数据存储前可以通过this.$options.methods.addFun();进行调用。

vue实现todolist基本功能以及数据存储功能实例详解

<div id="app">
       <input type="text" v-model="msg" @keydown="kaddFun($event)"/>
       <button @click="addFun()">添加</button>
       <br /><br />
       <h3>进行中</h3>
       <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="moveFun(key)">移除</button></li>
       </ul>
       <h3>已完成</h3>
       <ul>
         <li v-for="(item,key) in list" v-if="item.checked" ><input type="checkbox" v-model="item.checked"/> {{item.title}} <button @click="moveFun(key)">移除</button></li>
       </ul>
     </div>
     <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
     <script type="text/javascript">
       var app = new Vue({
         el:'#app',
         data:{
           msg:'',
           list:[]
         },
         methods:{
           addFun(){
             this.list.push({
               title:this.msg,
               checked:false
             }),
             this.msg = '';
             //存储数据
            localStorage.setItem('list',JSON.stringify(this.list))
           },
           kaddFun(e){
             if(e.keyCode==13){
                this.addFun();
             }  
           },
           moveFun(key){
             confirm("是否移除"+this.list[key].title+"?");
             this.list.splice(key,1);
             localStorage.setItem('list',JSON.stringify(this.list))
           },
           saveList(){
             localStorage.setItem('list',JSON.stringify(this.list))
           }
         },
         //生命周期函数  vue页面刷新就会触发的方法
        mounted(){
           //json字符串转成json对象
          var list = JSON.parse(localStorage.getItem('list'))
           //判断list是否存在
          if(list){
             //存在则将获取到的list保存刷新后的list中
            this.list = list;
           }
         }
       })
     </script>

封装操作localstorage本地存储方法

vue实现todolist基本功能以及数据存储功能实例详解

总结

以上所述是小编给大家介绍的vue实现todolist基本功能以及数据存储功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript控制frame,iframe的src属性代码
Dec 31 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
Jun 11 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
基于JavaScript表单脚本(详解)
Oct 18 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
May 16 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
Apr 17 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
Jul 19 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 #Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 #Javascript
详解jQuery设置内容和属性
Apr 11 #jQuery
js作用域和作用域链及预解析
Apr 11 #Javascript
关于js陀螺仪的理解分析
Apr 11 #Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 #Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 #Javascript
You might like
重置版战役片段
2020/04/09 魔兽争霸
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python 异常处理实例详解
2014/03/12 Python
简单介绍Python中的JSON模块
2015/04/08 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python梯度下降法的简单示例
2018/08/31 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
中学实习教师自我鉴定
2013/12/12 职场文书
简历的自我评价
2014/02/03 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书