[IMWeb训练营作业]基于Vuejs的Todo List

文档说明:
运行效果图:
效果图

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="vue.js"></script>
    <style type="text/css">
        .todolistDiv{
            margin:200px auto;
            width:220px;
            height: auto;
        }
        .btn{
            opacity: 0.5;
            border: none;
            margin-left: 10px;
            box-shadow:0 0 20px lightpink;
        }
        .ipt{
            box-shadow:0 0 20px darkblue;
            border:none;
        }
        span{
            font-size: 70px;
        }
        .liDiv{
            margin-top: 10px;
        }
        .complete{
            color: blue;
        }
    </style>
</head>
<body>
<!-- todolist -->
<div id="vue-todolist" class="todolistDiv">
    <span> todolist</span>
    <input class="ipt" type="text" v-model="inputVaule" v-on:keyup.enter="add"/>
    <button v-on:click="add" class="btn">add</button>
    <ul >
        <li v-for="item in items" >
            <div class="liDiv">
                <input type="checkbox" v-model="item.completed">
                <label  v-bind:class="{ complete:item.completed }">{{item.text}}</label>
                <button v-on:click="removeTodo(item)" class="btn">x</button>

            </div>
        </li>
    </ul>
</div>
<!-- vue框架 -->

<script src="vue-resource.js"></script>
<script src="app.js"></script>

</body>
</html>

js代码:

var STORAGE_KEY = 'todos-vuejs'//名称
var todoStorage = {
    fetch: function () {
        var todos = JSON.parse(localStorage.getItem(STORAGE_KEY) || '[]')
        todos.forEach(function (todo, index) {
            todo.id = index
        })
        todoStorage.uid = todos.length
        return todos
    },
    save: function (todos) {
        localStorage.setItem(STORAGE_KEY, JSON.stringify(todos))
    }
}


var vm=new Vue({
    el: '#vue-todolist',
    data: {
        items:todoStorage.fetch(),//直接从localstroage拿数据
        inputVaule:""
    },
    mounted:function(){/*ready*/

    },
    methods:{
        add:function(){
            var _this=this;
            this.items.push({text:this.inputVaule,completed:true});
            this.inputVaule="";
        },
        removeTodo: function (todo) {
            this.items.splice(this.items.indexOf(todo), 1)
        }
    },

    watch:{
        items:{
            handler:function(items){
                todoStorage.save(items)
            },
            deep:true
        }
    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值