IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 蓝桥web模拟赛:时间管理大师 -> 正文阅读

[JavaScript知识库]蓝桥web模拟赛:时间管理大师

[toc]

时间管理大师

目标:

请在index . html文件中使用默认提供的DOM结构(即基础项目提供的DOM结构和指定id不能
改变),并用 Vue 2.x语法实现任务管理器功能。
具体需求如下:

  1. 页面加载后默认显示“ 暂无数据”。

  2. 在输入框中输入内容并点击“确认” 按钮后,将输入内容添加到任务列表。

  3. 新增任务添加在已有任务后面。

  4. 点击每条任务右侧的“删除”图标该任务会从任务列表中移除。

  5. 底部“总数”右侧显示当前任务列表中的数量。

  6. 点击底部的“清除” 将清空任务列表中的数据,任务列表处恢复“暂无数据” 的默认显示。

最终效果[请通过浏览器查看素材文件夹中的【effect.gif 】
请添加图片描述

题目功能罗列:

  1. 添加事件、页面数据和事件绑定 2. 实现事件 3. 完善统计和显示功能

事件的话,除了点击,还有一个键盘回车事件,虽然文档没说明,但是演示有因此我们就加。

vue大体结构

 var top = new Vue({
        el: "#box",
        // 在此处补全代码,实现所需功能
        data:{
          newEvent:'',
          eventList:[]
        },
        methods:{
          clean(){
          },
          del(index){
          },
          add(){
          },
        }
      });

newEvent用于记录输入框的内容,eventList保存事件列表

1. 添加事件、页面数据和事件绑定

 <div id="box">
      <div class="head">
        <h2>Todos</h2>
        <p>罗列日常计划,做一个时间管理大师!</p>
        <div class="input" >
          <span>内容</span>
            <!-- @keyup.enter 监听键盘回车事件 -->
          <input type="text"  @keyup.enter="add" v-model="newEvent" placeholder="请输入你要做的事" />
          <span id="add" @click="add">确认</span>
        </div>
      </div>
      <ul class="list">
        <li v-if="eventList.length == 0">暂无数据</li>
        <li v-for="(item,index) in eventList" :key="index">
          <!-- 前面的序号 -->
          <span class="xh">{{index+1}}</span>
          <!-- 列表内容 -->
          <span>{{item}}</span>
          <!-- 删除按钮 -->
          <span class="qc" @click="del(index)"></span>
        </li>
        <li v-if="eventList.length >=  1">
          <b> 总数:{{eventList.length}} </b>
          <b id="clear" @click="clean">清除</b>
        </li>
      </ul>
    </div>

2. 事件实现

var top = new Vue({
    el: "#box",
    // 在此处补全代码,实现所需功能
    data:{
        newEvent:'',
        eventList:[]
    },
    methods:{
        clean(){
            this.eventList = []
        },
        del(index){
            this.eventList.splice(index,1)
        },
        add(){
            this.eventList.push(this.newEvent)
            this.newEvent = ''
        },
    }
});

删除功能的话直接通过数组函数aplice(索引,删除元素个数)来删除事件。遍历的时候把索引带上

清空的话简单,直接把元素初始化即可。

3. 完善统计和显示功能

统计的话有三个部分了:

  1. 事件列表。直接v-for遍历,没啥可说的
  2. 有数据时的事件总数:直接用eventList.length,用v-if="eventList.length >= 1"判断是否有事件即可
  3. 没数据时的无数据提示:同样用v-if="eventList.length != 0"即可

完整的关键代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>任务管理器</title>
    <link type="text/css" href="css/style.css" rel="stylesheet" />
  </head>
  <body>
    <div id="box">
      <div class="head">
        <h2>Todos</h2>
        <p>罗列日常计划,做一个时间管理大师!</p>
        <div class="input" >
          <span>内容</span>
          <input type="text"  @keyup.enter="add" v-model="newEvent" placeholder="请输入你要做的事" />
          <span id="add" @click="add">确认</span>
        </div>
      </div>
      <ul class="list">
        <li v-if="eventList.length == 0">暂无数据</li>
        <li v-for="(item,index) in eventList" :key="index">
          <!-- 前面的序号 -->
          <span class="xh">{{index+1}}</span>
          <!-- 列表内容 -->
          <span>{{item}}</span>
          <!-- 删除按钮 -->
          <span class="qc" @click="del(index)"></span>
        </li>
        <li v-if="eventList.length >=  1">
          <b> 总数:{{eventList.length}} </b>
          <b id="clear" @click="clean">清除</b>
        </li>
      </ul>
    </div>
    <script src="js/vue.js"></script>
    <script>
      var top = new Vue({
        el: "#box",
        // 在此处补全代码,实现所需功能
        data:{
          newEvent:'',
          eventList:[]
        },
        methods:{
          clean(){
            this.eventList = []
          },
          del(index){
            this.eventList.splice(index,1)
          },
          add(){
            this.eventList.push(this.newEvent)
            this.newEvent = ''
          },
        }
      });
    </script>
  </body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:55:34  更:2022-03-31 23:56:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:21:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码