vue实现ToDoList简单实例


Posted in Javascript onFebruary 07, 2017

一、需求与准备

1、准备

使用bootstrap实现页面的基础样式(依赖jquery),使用vue实现功能需要

2、功能需求

1)、表单实现输入任务清单后加入到展示项中
2)、点击删除按钮弹出警告框询问是否删除(bootstarp模态框插件)
3)、确定删除时,删除对应项(单项删除,全部删除)
4)、任务列表为空时,显示“数据为空” v-show

二、实例

1、静态页面

demo使用bootstrap来快速搭建页面

1)、表单组件:
.form, form-group, form-control
2)、模态框:
样式类:.modal,modal-content,modal-header,modal-body,modal-footer
触发模态框:data-toggle=”modal”,data-target=”模态框ID”
取消模态框:data-dismiss=”true”
2、功能实现
1)、表单数据:
v-model(数据绑定),v-on:click=”fun()”(绑定事件),v-for=”value in dataArr”(遍历),
2)、添加任务
思路:通过v-model绑定数据到vue实例中(timeStamp,taskItem用于暂存数据),点击提交时,在事件响应函数内向任务列表数组内添加提交的数据后,再清空用于存放数据的timeStamp,taskItem。
3)、删除任务
在vue实例中的methods属性上添加事件响应函数,在data中定义targetIndex以存放点击的按钮索引,遍历时,绑定点击事件v-on:click=”targetIndex=$index”,点击时根据targetIndex的值,删除对应索引的数据。
4)、删除全部
绑定删除全部按钮事件,targetIndex=-2,在删除响应除数内通过判断确定是部分删除还是全部删除。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>留言板</title>
 <script src="../vendor/jquery-1.7.2.js"></script>
 <script src="../vendor/bootstrap.js"></script>
 <link href="../vendor/bootstrap.min.css" type="text/css" rel="stylesheet"/>
 <script src="../vendor/vue/dist/vue.js"></script>
</head>
<body>
 <div class="container" id="box">
  <form >
   <div class="form-group">
    <label for="timeStamp">时间</label>
    <input type="datetime" id="timeStamp" v-model="timeR" name="timeStamp" class="form-control">
   </div>
   <div class="form-group">
    <label for="todoItem" class="">任务</label>
    <input type="text" id="todoItem" name="todoItem" v-model="taskItem" class="form-control">
   </div>
   <div class="form-group">
    <button class="btn btn-success" v-on:click="add()" type="button">添加</button>
    <button class="btn btn-danger" type="submit">重置</button>
   </div>
  </form>
  <table class="table table-bordered text-center">
   <caption><h3>任务清单</h3></caption>
   <tr >
    <th class="text-center">序号</th>
    <th class="text-center">时间</th>
    <th class="text-center">任务</th>
    <th class="text-center">操作</th>
   </tr>
   <tr v-for="value in taskList">
    <td>{{$index+1}}</td>
    <td>{{value.timeStamp}}</td>
    <td>{{value.task}}</td>
    <td><button class="btn btn-danger" data-toggle="modal" data-target="#alertBox" v-on:click="targetIndex=$index">删除</button></td>
   </tr>
   <tr v-show="taskList.length!=0">
    <td colspan="4" class="text-right"><button class="btn btn-danger" data-toggle="modal" data-target="#alertBox" v-on:click="targetIndex=-2">删除全部</button></td>
   </tr>
   <tr v-show="taskList.length==0">
    <td colspan="4" class="text-muted" >暂无数据......</td>
   </tr>
  </table>
  <div role="dialog" class="modal" id="alertBox">
   <div class="modal-dialog">
    <div class="modal-content">
     <div class="modal-header">提醒:</div>
     <div class="modal-body text-center" v-show="targetIndex>0">
      确定要删除么???
     </div>
     <div class="modal-body text-center" v-show="targetIndex==-2">
      确定要全部删除么??
     </div>
     <div class="modal-footer">
      <button class="btn btn-danger" data-dismiss="modal" v-on:click="deleteFn(targetIndex)">确认</button>
      <button class="btn btn-primary" data-dismiss="modal">取消</button>
     </div>
    </div>
   </div>
  </div>

 </div>
 <script>
  var vm=new Vue({
   el:"#box",
   data:{
    timeR:'',
    taskItem:'',
    targetIndex:-1,
    taskList:[
     {
      timeStamp:'2016-12-03',
      task:'学习学习'
     },
     {
      timeStamp:'2016-12-03',
      task:'代码代码代码'
     }
    ]
   },
   methods:{
    add:function(){
     console.log(this.timeR)
     this.taskList.push({
      timeStamp:this.timeR,
      task:this.taskItem
     });
     this.timeR="";
     this.taskItem="";
    },
    deleteFn:function(index){
     if(index>0){
      this.taskList.splice(index,1)
     }else{
      this.taskList=[]
     }
    }
   }
  })
 </script>
</body>
</html>

补充:

1)、v-on:click的简写形式:@click
2)、在vue中传入事件对象时:$event
3)、事件冒泡(原生:ev.cancelBubble=true,vue中@click.stop=”函数”)
4)、阻止浏览器默认行为:(原生:ev.preventDefault(),vue中@click.prevent=”函数”)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE和FireFox(FF)中js和css的不同
Apr 13 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
获取body标签的两种方法
Oct 13 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
Jun 01 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
微信小程序 video详解及简单实例
Jan 16 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
Sep 05 Javascript
js Canvas绘制圆形时钟教程
Feb 06 #Javascript
JS中静态页面实现微信分享功能
Feb 06 #Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 #Javascript
Javascript之深入浅出prototype
Feb 06 #Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 #Javascript
canvas实现图像布局填充功能
Feb 06 #Javascript
canvas实现图像截取功能
Feb 06 #Javascript
You might like
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JavaScript变量的作用域全解析
2015/08/14 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
详解Python中的正则表达式
2018/07/08 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Django之form组件自动校验数据实现
2020/01/14 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Shell编程面试题
2012/05/30 面试题
软件测试企业面试试卷
2016/07/13 面试题
Why do we need Unit test
2013/01/03 面试题
网络管理专业求职信
2014/03/15 职场文书
品质口号大全
2014/06/17 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
公积金具结保证书
2015/05/11 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记