Vue 实现简易记事本

Posted 「已注销」

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 实现简易记事本相关的知识,希望对你有一定的参考价值。

预览图:

 

 

功能如下:

(1)输入任务并按下回车键,可将任务添加至任务列表(不可输入重复任务)

(2)点击删除,可删除对应任务

(3)点击清空,所有任务都会被删除

(4)左下角同步显示任务总数

完整代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>记事本</title>
    <style>
        * 
            margin: 0;
            padding: 0;
        

        #todoapp 
            width: 600px;
            background-color: rgba(19, 161, 114, 0.63);
            font-family: sans-serif;
        

        .header>h1 
            padding: 20px 0;
            text-align: center;
            font-size: 40px;
            color: whitesmoke;
        


        .newTask 
            display: block;
            width: 500px;
            height: 50px;
            line-height: 50px;
            padding-left: 10px;
            margin: 0 auto;
            font-size: 20px;
            outline: none;
            border: none;
        

        .todolist li 
            height: 30px;
            line-height: 30px;
            padding-left: 15px;
            margin: 10px 0;
            font-size: 25px;
            color: white;
        

        .todolist .item 
            margin-left: 15px;
        

        .destroy,
        .clear 
            width: 50px;
            height: 30px;
            float: right;
            color: white;
            background-color: transparent;
            border: none;
            font-size: 20px;
        

        .footer 
            width: 600px;
            height: 30px;
            padding: 10px 0;
            vertical-align: middle;
        


        .footer p 
            display: inline-block;
            padding-left: 15px;
            color: white;
            font-size: 20px;
        
    </style>
</head>

<body>
    <section id="todoapp">
        <header class="header">
            <h1>记事本</h1>
            <input type="text" v-model="newItem" class="newTask" placeholder="请输入任务" @keyup.enter="add">
        </header>
        <section>
            <ul class="todolist">
                <li v-for="(item, index) in list">
                    <div>
                        <span> index + 1 </span>
                        <label class="item"> item </label>
                        <button class="destroy" @click="del(index)">删除</button>
                    </div>
                </li>
            </ul>
        </section>
        <footer class="footer">
            <p class="count">
                items:  list.length 
            </p>
            <button class="clear" @click="clear" v-show="list.length != 0">清空</button>
        </footer>
    </section>
    <script src="./vue.js"></script>
    <script>
        const app = new Vue(
            el: "#todoapp",
            data: 
                list: [],
                newItem: ""
            ,
            methods: 
                add() 
                    if (this.newItem == "") 
                        return;
                    
                    else 
                        if (!this.list.includes(this.newItem)) 
                            this.list.push(this.newItem);
                            this.newItem = "";
                        
                        else 
                            alert("请勿添加重复事件!");
                            this.newItem = "";
                        
                    
                ,
                del(index) 
                    this.list.splice(index, 1);
                ,
                clear() 
                    this.list = [];
                
            
        )
    </script>
</body>

</html>

以上是关于Vue 实现简易记事本的主要内容,如果未能解决你的问题,请参考以下文章

C#简易记事本的实现

实现一个简易编译器

简易版本vue的实现和注解

Vue初体验——用Vue实现简易版TodoList

Vue双向数据绑定简易实现

python做简易记事本