1. 程式人生 > >【vue.js】備忘錄demo

【vue.js】備忘錄demo

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="vue.js"></script>
    <style>
        /*當任務完成時,勾選多選框後的樣式*/
        .finish{
            text-decoration:line-through;
            color:#aaabac;
        }
    </style>
</head>
<body>
<div id="app">
    <!--輸入框:v-model用於將輸入內容跟content進行資料繫結,keydown.enter用於監聽鍵盤迴車事件-->
    <input type="text" v-model="task.content" placeholder="edit" @keydown.enter="addTask">
    <!--任務列表顯示區域-->
    <div id="list">
        <!--用v-if判斷當前是否有任務,任務陣列list長度為0時顯示暫無任務-->
        <p v-if="list.length===0" style="position:relative;left:20px;top:20px;color:#AAAAAA">暫無任務</p>
        <!--用v-for遍歷輸出任務陣列中的任務-->
        <div id="unit" v-for="(item,index) in list" >
            <!--多選框的click事件監聽狀態(是否勾選)的改變-->
            <input type="checkbox" @click="changeState(index)" >
            <!--動態新增樣式class='finish'-->
            <span :class="{'finish':item.finished}">{{ index+1 }}.{{ item.content }}</span>
            <!--刪除按鈕:點選按鈕執行deleteTak函式,需要注意要傳入索引值刪除指定任務-->
            <button style="background:red;color:white;" @click="deleteTask(index)">delete</button>
        </div>
    </div>
</div>

</body>
<script>
    let vm=new Vue({
        el:"#app",
        data:{
            task:{
                content:'',
                finished:false,
                // deleted:false,
            },

            list:[],

            addTask(){
                this.list.push(this.task);
                this.task={
                    content:'',
                    finished:false,
                    // deleted:false,
                }
            },

            changeState(index){
                let nowState=this.list[index].finished;
                this.list[index].finished=!this.list[index].finished;
            },

            deleteTask(index){
                this.list.splice(index,1);
            }
        },
    });
</script>
</html>