vue-todolist-demo
来源:互联网 发布:www.杭州行知小学.com 编辑:程序博客网 时间:2024/05/17 13:45
最近学习vue.js,仿照教程做了一个demo,记录一下,先上效果图
源代码
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>vue-todolist</title> <meta charset="utf-8" /> <script src="Scripts/vue.js"></script></head><body> <style type="text/css"> #todolist li.finished { background-color: green; color: white; } </style> <div id="todolist"> <h2 @click="clickH2" v-bind:title="!isEditting?'点击编辑':''"> <input v-model="user" v-show="isEditting" @keyup.enter="isEditting=false" @blur="isEditting=false" /> <span v-show="!isEditting" @click="isEditting=true" title="点击编辑">{{user}}</span> <span>的todolist</span> </h2> <div> <button @click="addOne">添加新项目</button> <button @click="deleteSelectedItems">删除所选项目</button> <button @click="deleteAll">删除所有项目</button> </div> <ul v-for="(item, index) in list"> <li v-bind:class="[item.finished?'finished':'']"> <div v-show="item.isEditting"> <input type="checkbox" v-model="item.selected" /> <input v-model="item.content" class="content" /> <button @click="item.isEditting=false">保存</button> </div> <div v-show="!item.isEditting"> <input type="checkbox" v-model="item.selected" /> <span>{{item.content}}</span> <button v-if="!item.finished" @click="item.finished=true">标记为已完成</button> <button v-if="item.finished" @click="item.finished=false">标记为未完成</button> <button @click="editItem(index)">编辑</button> </div> </li> </ul> </div> <script> new Vue({ el: '#todolist', data: function () { var user = localStorage.getItem('todolist_user') || '' var list = [] var listStr = localStorage.getItem('todolist_list') if (listStr) { list = JSON.parse(listStr) } return { isEditting: false, user: user, list: list } }, watch: { user: function (val, oldVal) { localStorage.setItem('todolist_user', val) }, list: { handler: function (val, oldVal) { var str = JSON.stringify(val) localStorage.setItem('todolist_list', str) }, deep: true } }, methods: { clickH2: function () { if (!this.user) { this.isEditting = true } }, addOne: function () { var item = { title: '', finished: false, selected: false, isEditting: true } this.list.push(item) var vm = this Vue.nextTick(function () { vm.$el.querySelectorAll('li')[vm.list.length - 1].querySelector('.content').focus() }) }, editItem: function (index) { this.list[index].isEditting = true var vm = this Vue.nextTick(function () { vm.$el.querySelectorAll('li')[index].querySelector('.content').focus() }) }, deleteSelectedItems: function () { this.list = this.list.filter(function (item) { return !item.selected }) }, deleteAll: function () { this.list = [] } } }) </script></body></html>
0 0
- vue-todolist-demo
- vue实现todolist的demo
- vue-todoList-demo with localstorage
- 【IMWeb训练营作业】vue demo Todolist
- 【IMWeb训练营作业】Vue TodoList Demo
- vue---todolist
- Vue之ToDoList实战
- vue.js实例todoList
- Vue之todoList
- vue-简单的todolist
- Vue实现简单ToDoList
- vue写todolist
- ToDoList(Vue示例)
- VueJS2 todoList Demo
- React笔记-todoList-Demo
- 二四、vue实现todolist
- vue.js 练手--简单ToDoList
- vue.js实现简单todolist
- Lua脚本学习日记-01 (又开新坑)
- HDU-5945 Fxx and game (dp+单调队列)
- 用Servlet获取表单数据
- CSS3 中的动画
- 深度学习框架(分语言总结)
- vue-todolist-demo
- sublime text 3汉化教程
- ios 计算两个时间之间的时间差
- HDU 1796:How many integers can you find(容斥原理)
- H - Marriage is Stable 母函数模版题
- 《挑战》这本书写的真不错
- Python编写简易脚本文件
- LeetCode(124) Binary Tree Maximum Path Sum (如何递归?)
- ORACLE数据库的监听日志文件莫名丢失