todo记事本案例

news/2025/2/3 1:48:15 标签: 前端, javascript

此案例较为简单,功能需求也比较单一,后续会使用node.js+mysql来进行更加复杂的需求开发的。

主要分为5部分

1、列表渲染

设置好一个数组,使用v-for数组遍历即可

<template>
  <!-- 主体区域 -->
  <section id="app" style="width: 600px; margin: 180px auto">
    <!-- 输入框 -->
    <header class="header">
      <h1>todo记事本</h1>
      <input
        v-model="todoName"
        @keyup.enter="add"
        placeholder="请输入todo任务"
        class="new-todo"
      />
      <button @click="add" class="add">添加 todo</button>
    </header>
    <!-- 列表区域 -->
    <section class="main">
      <ul class="todo-list">
        <li class="todo" v-for="(item, index) in todoList" :key="item.id">
          <div class="view">
            <span class="index">{ { index + 1 }}.</span>
            <label>{ { item.name }}</label>
            <button @click="del(item.id)" class="destroy"></button>
          </div>
        </li>
      </ul>
    </section>
    <!-- 统计和清空 → 如果没有任务了,底部隐藏掉 → v-show -->
    <footer class="footer" v-show="todoList.length > 0">
      <!-- 统计 -->
      <span class="todo-count"
        >合 计:<strong> { { todoList.length }} </strong></span
      >
      <!-- 清空 -->
      <button @click="clear" class="clear-completed">清空任务</button>
    </footer>
  </section>
</template>
<script>
export default {
  name: "ToDoList",
  data() {
    return {
      todoName: "",
      todoList: [
        { id: 1, name: "吃饭" },
        { id: 2, name: "打豆" },
        { id: 3, name: "摸鱼" },
      ],
    };
  },
};
</script>

2、删除功能

<script>

export default {

  name: "ToDoList",

  data() {

    return {

      todoName: "",

      todoList: [

        { id: 1, name: "吃饭" },

        { id: 2, name: "打豆" },

        { id: 3, name: "摸鱼" },

      ],

    };

  },

  methods: {

    del(id) {

      // console.log(id) => filter 保留所有不等于该 id 的项

      this.todoList= this.todoList.filter((item) => item.id !== id);

    },

  },

};

</script>

3、添加功能

<script>

export default {

  name: "ToDoList",

  data() {

    return {

      todoName: "",

      todoList: [

        { id: 1, name: "吃饭" },

        { id: 2, name: "打豆" },

        { id: 3, name: "摸鱼" },

      ],

    };

  },

  methods: {

    del(id) {

      // console.log(id) => filter 保留所有不等于该 id 的项

      this.todoList= this.todoList.filter((item) => item.id !== id);

    },

    add() {

      if (this.todoName.trim() === "") {

        alert("请输入任务名称");

        return;

      }

      this.todoList.unshift({

        id: +new Date(),

        name: this.todoName,

      });

      this.todoName = "";

    },

  },

};

</script>

4、底部统计和清空

底部统计其实就是todoList数组的长度,清空的话直接将todoList数组赋值为空即可

<script>

export default {

  name: "ToDoList",

  data() {

    return {

      todoName: "",

      todoList: [

        { id: 1, name: "吃饭" },

        { id: 2, name: "打豆" },

        { id: 3, name: "摸鱼" },

      ],

    };

  },

  methods: {

    del(id) {

      // console.log(id) => filter 保留所有不等于该 id 的项

      this.todoList= this.todoList.filter((item) => item.id !== id);

    },

    add() {

      if (this.todoName.trim() === "") {

        alert("请输入任务名称");

        return;

      }

      this.todoList.unshift({

        id: +new Date(),

        name: this.todoName,

      });

      this.todoName = "";

    },

    clear() {

      this.todoList= [];

    },

  },

};

</script>

5、效果展示


http://www.niftyadmin.cn/n/5840414.html

相关文章

python-leetcode-二叉搜索树迭代器

173. 二叉搜索树迭代器 - 力扣&#xff08;LeetCode&#xff09; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class BST…

图书管理系统 Axios 源码 __删除图书功能

目录 代码实现&#xff08;index.js&#xff09; 代码解析 使用方法 下面是完整的删除图书功能代码&#xff0c;基于 HTML Bootstrap JavaScript Axios 开发。 代码实现&#xff08;index.js&#xff09; // 删除图书功能 document.querySelector(.list).addEventListen…

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1&#xff0c;录入用户信息1.4 例子2&#xff0c;正则验证手机号1.5 例子3&#xff0c;验证输入的密码1.6 例子4&#xff0c;显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1&#xff0c;获取输入框的内容2.4 例…

CSS 样式化表格:从基础到高级技巧

CSS 样式化表格&#xff1a;从基础到高级技巧 1. 典型的 HTML 表格结构2. 为表格添加样式2.1 间距和布局2.2 简单的排版2.3 图形和颜色2.4 斑马条纹2.5 样式化标题 3. 完整的示例代码4. 总结 在网页设计中&#xff0c;表格是展示数据的常见方式。然而&#xff0c;默认的表格样式…

Python学习——函数参数详解

Python中的函数参数传递机制允许多种灵活的参数类型&#xff0c;可以根据需求灵活配置参数&#xff0c;这使得函数具有更强大的扩展性和适应性。以下是对各类参数类型的详细说明&#xff1a; 1. 定义函数的不同参数类型 1.1 位置参数 定义方式&#xff1a;def func(a, b2) 特…

41【文件名的编码规则】

我们在学习的过程中&#xff0c;写出数据或读取数据时需要考虑编码类型 火山采用&#xff1a;UTF-16 易语言采用&#xff1a;GBK php采用&#xff1a;UTF-8 那么我们写出的文件名应该是何种编码的&#xff1f;比如火山程序向本地写出一个“测试.txt”&#xff0c;理论上这个“测…

【自学笔记】Web前端的重点知识点-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Web前端知识点一、HTML基础二、CSS样式三、JavaScript基础四、前端框架与库五、前端工具与构建六、前端性能优化七、响应式设计与适配八、前端安全 总结 Web前端知识…

Spring的AOP思想中事物管理注意点

我们以事务管理实现AOP思想 通过在Service层加入事务管理,因为Service层可能使用多个DAO(多条SQL语句) 要保证这些SQL要么同时成功,要么同时失败,例如:学生Serivce:删除学生的时候,还需要删除学生关联信息(选课信息) 只有都删除成功才提交,如果有一条执行失败…