美文网首页
vue2.0 computed和v-bind:class

vue2.0 computed和v-bind:class

作者: www000 | 来源:发表于2016-11-22 23:16 被阅读0次
    <style>
        .completed{
            color:#1ec01e;
            text-decoration: line-through;
        }
    </style>
    
    <div id="app">
        <h1>@{{todoCount}}</h1> {{--实时计算computed--}}
        <ul>
            <li v-bind:class="{'completed':todo.completed}" v-for="(todo,index) in todos">@{{todo.title}} {{--v-bind:class completed为true改变为顶部style的样式--}}
                <button  v-bind:class="[todo.completed ? 'btn-danger' : 'btn-success']" @click="toggleCompletion(todo)">{{--按钮绑定toggleCompletion(todo)事件--}}
                @{{todo.completed ? 'undo' : 'completed'}}</button>
                <button @click="deleteTodo(index)">delete</button>
            </li>
        </ul>
    
        <form  @submit.prevent="addTodo(newTodo)">
            <input type="text" v-model="newTodo.title">
            <button value="submit">add</button>
        </form>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                todos:[{id:1,title:1,completed:false},{id:2,title:2,completed:false}],
                newTodo:{id:null,title:'',completed:false}//先定义 completed为 false
            },
            computed:{ todoCount(){ return this.todos.length;}  //实时计算todoCount的值
            },
            methods:{
                addTodo(newTodo){
            this.todos.push(newTodo)
            this.newTodo={id:null,title:''}//重置输入框内容为空
                },
            deleteTodo(index){
            this.todos.splice(index,1)
                },
            toggleCompletion(todo){
                    todo.completed=!todo.completed
                },//触发false变true
    
        },
        })
    </script>
    
    

    相关文章

      网友评论

          本文标题:vue2.0 computed和v-bind:class

          本文链接:https://www.haomeiwen.com/subject/gzsmpttx.html