如图,A simple todo-list长这样
这是一个基于vue.js的一个简单的todo-list小demo。首先要实现添加非空list,点击list切换finished状态这样的一个效果,推荐学习地址---->点击打开链接
接下来是实现的一个上移,下移,删除的效果图:
删除效果:
讲一下思路:
上移-----首先将鼠标所指list的内容插入到上一条上面,然后删除鼠标所指的list(也就是this.items[index]),运行代码便可实现上移的效果,或者将上下两条list的内容进行调换也是可以的。
删除-----这里和上下移一样,主要是用到了操作数组的splice这个方法,既可以添加也可以删除,不懂的去补一下
小二~上代码:
----App.vue----
<div><input v-model="newItem" v-on:keyup.enter="addNew"></div> <div class="box-center"> <ul class="box-list"> <li v-for="item ,index in items" v-bind:class="{finished:item.isfinished}" v-on:mouseover="moveBtn(item)" v-on:mouseout="leaveBtn(item)"> <span v-on:click="toggleFinished(item)" v-bind:class="{bgYellow:item.isBgyellow}">{{item.label}}</span> <span class="list-btn" v-show="item.isShow"> <button v-on:click="moveUp(index,item)">上移</button> <button v-on:click="moveDown(index,item)">下移</button> <button v-on:click="deleteBtn(index)">删除</button> </span> </li> </ul> t;/div>
----Store.js----
const STORAGE_KEY = 'todos-vuejs' export default { fetch () { return JSON.parse(window.localStorage.getItem( STORAGE_KEY) || '[]') }, save (items) { window.localStorage.setItem(STORAGE_KEY,JSON.stringify( items)) } } ----App.vue---- <span style="font-size:14px;"><script> import Store from './store' export default { data: function() { return { title: 'A simple todo-list', items: Store.fetch(), newItem: '', msg:'点击按钮', isShow: false, isBlock: true, isBgyellow: false, leftPx:0, topPx:0 } }, watch: { items: { handler: function(items) { Store.save(items) }, deep: true } }, methods: { toggleFinished: function(item) { item.isfinished = !item.isfinished }, show:function ($event) { $event.cancelBubble=true; this.isBlock = false; this.topPx = ($event.clientY); this.leftPx = ($event.clientX); }, stop:function(event){ this.isBlock = true; }, moveBtn:function(item) { // console.log(item.label) item.isShow = true; }, leaveBtn:function(item) { item.isShow = false; }, addNew: function() { //非空才可以添加 if(this.newItem!=''){ this.items.push({ label: this.newItem, isfinished: false }) } this.newItem = ''; }, moveUp:function(index,item) { //在上一项插入该项 this.items.splice(index-1,0,(this.items[index])); //删除后一项 this.items.splice(index+1,1); item.isShow = false; if(index == 0) { alert("到顶啦!"); } }, moveDown:function(index,item) { //在下一项插入该项 this.items.splice(index+2,0,(this.items[index])); // 删除前一项 this.items.splice(index,1); item.isShow = false; if(index == this.items.length-1) { alert("已经是最后一项啦!"); } }, deleteBtn:function(index) { this.items.splice(index,1); } }, } </script></span><span style="font-size: 18px;"> </span>
套路就是在html中插入方法或者class,methods中对数据进行操作~
总结:
这是本小白入门vue.js学习的第一个demo,有一些jQuery的观念不能很好的转变,总是习惯性的操作dom节点,殊不知vue可以有更好的方式去实现
以上所述是小编给大家介绍的Vue.js实现一个todo-list的上移下移删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍AngularJS实现数据列表的增加、删除和上移下移等功能实例,包括了AngularJS实现数据列表的增加、删除和上移下移等功能实例的使用技巧和注意事项,需要的朋友参考一下 效果图 实例代码 总结 以上就是这篇文章的全部内容,大家可以自己实践后看下效果,这样更利于大家的理解和学习,希望本文对大家学习或使用AngularJS能有所帮助。如果有疑问可以留言交流,谢谢大家对呐喊教程的支持。
本文向大家介绍Vue.js实现移动端短信验证码功能,包括了Vue.js实现移动端短信验证码功能的使用技巧和注意事项,需要的朋友参考一下 现在的短信验证码一般为4位或6位,则页面中会相应的显示4个或6个文本框,如图所示 当点击注册进入到输入验证码页面的时候,第一个框自动获取光标,依次输入,不可直接输入第三个或第四个框的值, input输入框是循环出来的,代码如下: 第一第三行不解释,相信聪明的你可以
本文向大家介绍JS实现移动端判断上拉和下滑功能,包括了JS实现移动端判断上拉和下滑功能的使用技巧和注意事项,需要的朋友参考一下 一、手指触屏,利用touchstart和touchend计算前后滑动距离,判断是上拉还是下滑。 二、js中距离:pageY、clientY、offsetY的区别: offsetY:相对于父节点的偏移距离。 clientY:相对于浏览器,滚轮距离
上图 当我点击1间的时候只显示住客姓名1 当我点击2间的时候只显示住客姓名1 住客姓名2 当我点击3间的时候只显示住客姓名1 住客姓名2 住客姓名3 以此类推,该怎么实现呀 代码贴上了
本文向大家介绍Unity3D移动端实现摇一摇功能,包括了Unity3D移动端实现摇一摇功能的使用技巧和注意事项,需要的朋友参考一下 手机摇一摇功能在平时项目开发中是很常见的需求,利用Unity的重力感应可以很方便的实现该功能。 Unity简化了重力感应的开发, 通过访问Input.acceleration属性,取回加速度传感器的值。首先我们看一下重力传感器的方向问题。Unity3D中重量的取值范围
本文向大家介绍JS实现点击上移下移LI行数据的方法,包括了JS实现点击上移下移LI行数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现点击上移下移LI行数据的方法。分享给大家供大家参考。具体如下: 这里演示JavaScript排序功能,点击按钮实现数据的上移和下称,一共有两组测试效果,上组采用箭头图标控制的方式,更美观,下组是直接使用文字,根据你的需要自行选择。myList