dolist案例实现

这段代码是一个使用Vue.js实现的简单的ToDoList(待办事项列表)应用。我们分几个部分详细解释这段代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>todolist</title>
    <script src="../02%20vue%20初识/vue.js"></script>
  <style type="text/css">
    .list_con {
      width: 600px;
      margin: 50px auto 0;
    }

    .inputtxt {
      width: 550px;
      height: 30px;
      border: 1px solid #ccc;
      padding: 0px;
      text-indent: 10px;
    }

    .inputbtn {
      width: 40px;
      height: 32px;
      padding: 0px;
      border: 1px solid #ccc;
    }

    .list {
      margin: 0;
      padding: 0;
      list-style: none;
      margin-top: 20px;
    }

    .list li {
      height: 40px;
      line-height: 40px;
      border-bottom: 1px solid #ccc;
    }

    .list li span {
      float: left;
    }

    .list li a {
      float: right;
      text-decoration: none;
      margin: 0 10px;
    }
  </style>
</head>
<body>
<div id="todolist" class="list_con">
  <h2>To do list</h2>
  <input type="text" v-model="message" class="inputtxt">
  <input type="button" @click="addItem" value="增加" class="inputbtn">
  <ul id="list" class="list">
    <li v-for="(item,key) in dolist">
      <span>{{item}}</span>
      <a @click="upItem(key)" class="up"></a>
      <a @click="downItem(key)" class="down"></a>
      <a @click="delItem(key)" class="del">删除</a>
    </li>
  </ul>
</div>
<script>
    const app={
      data(){
        return{
          message:"",
          dolist:["学习GO语言","学习JavaScript语言","学习HTML语言"]
        }
      },
      methods:{
        addItem(){
           // this.dolist.unshift(this.message) //前缀添加
           this.dolist.push(this.message)   //追加添加
        },
        //对当前下标开始操作
        upItem(key){
            console.log(key)
            var res = this.dolist.splice(key,1)   //数组类型
            console.log(res)
            this.dolist.splice(key-1,0,res[0])
        },
        downItem(key){
            console.log(key)
            var res = this.dolist.splice(key,1)
            console.log(res)
            this.dolist.splice(key+1,0,res[0])
        },
        delItem(key){
            console.log(key)
            this.dolist.splice(key,1)
        }
      }
    }
    vm=Vue.createApp(app).mount('#todolist')
</script>
</body>
</html>

实现效果:
在这里插入图片描述
添加内容学习python语言
通过message的v-model方法对标签进行双向传参实现删除功能。
在这里插入图片描述
删除列表学习HTML语言:
在这里插入图片描述
学习ptyhon语言向上👆移动:
在这里插入图片描述
学习GO语言向下👇移动:
在这里插入图片描述

HTML结构

  • div#todolist是整个ToDoList的容器,其中包含一个输入框用于输入新待办事项,一个按钮用于添加新待办事项到列表中,以及显示待办事项的ul#list列表。
  • 列表中的每一项代表一个待办事项。每个待办事项显示其内容,并且有向上(↑)、向下(↓)和删除三个操作链接。

CSS样式

  • CSS部分主要是控制待办事项列表的布局和视觉效果,例如设置容器的宽度、输入框和按钮的样式、列表项的边框和布局等。

JavaScript(Vue.js)

  • app对象定义了这个Vue应用的数据和方法。
    • data()函数返回应用的响应式数据:
      • message用于绑定到输入框,存储新待办事项的文本。
      • dolist是一个数组,存储所有的待办事项。
    • methods对象定义了一些方法来操作待办事项:
      • addItem方法用来将message中的新待办事项添加到dolist数组中。
      • upItem方法接受一个待办事项的索引key,将该待办事项在列表中上移一位。
      • downItem方法接受一个待办事项的索引key,将该待办事项在列表中下移一位。
      • delItem方法接受一个待办事项的索引key,将该待办事项从列表中删除。

Vue指令

  • v-model="message": 将输入框的值双向绑定到message数据。
  • @click="addItem": 给增加按钮绑定点击事件,点击时调用addItem方法。
  • v-for="(item,key) in dolist": 动态渲染dolist数组中的每一项,item是待办事项的内容,key是其索引。
  • @click="upItem(key)"@click="downItem(key)"@click="delItem(key)": 分别给上移、下移和删除操作绑定点击事件,点击时调用对应的方法并传递当前待办事项的索引。

这个ToDoList应用通过Vue.js能够非常简洁地实现待办事项的添加、上移、下移和删除操作,展示了Vue.js在构建交互式Web应用方面的便利性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/366358.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

带大家做一个,易上手的家常孜然猪肉挂面

准备一定猪瘦肉 加一把挂面 猪瘦肉切片 一小把花椒 一定量干辣椒(看你想让它多辣) 四个左右大料 一根大葱 一块生姜 四瓣大蒜 蒜切片 单独装起来备用 大葱切段 生姜切片 和干辣椒 花椒 大料装一起 起锅烧油 下瘦肉 翻炒一下 然后倒入 葱姜 干辣椒 花椒 大料 翻炒均匀 …

Mysql单行函数练习

数据表 链接&#xff1a;https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码&#xff1a;b0rp --来自百度网盘超级会员V5的分享 单行函数练习 单行函数(一行数据返回一个结果) #1.显示系统时间(注:日期时间) #2.查询员工工号,姓名,工资以及提高百分之20后的结果(new…

何以穿越产业周期?解读蓝思科技2023年增长密码

1月30日晚&#xff0c;蓝思科技发布了2023年业绩预告&#xff0c;2023年预计实现归母净利润29.38亿元-30.60亿元&#xff0c;同比增长20%-25%。 松果财经注意到&#xff0c;蓝思科技通过垂直整合&#xff0c;构筑了更具竞争力的产业链条。一方面&#xff0c;公司打造了包含ODM…

MyBatis框架-多对一处理

多对一的处理 多个学生对应一个老师如果对于学生这边&#xff0c;就是一个多对一的现象&#xff0c;即从学生这边关联一个老师&#xff01; 数据库设计 CREATE TABLE teacher (id INT(10) NOT NULL,name VARCHAR(30) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEINNODB DEFAULT C…

【Redis】Redis集群方案应该怎么做 都有哪些方案

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Redis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 &#xff08;1&#xff09;twemproxy &#xff08;2&#xff09;codis &#xff08;3&#xff09;redis cluster3.0自带的集群 …

Docker进阶篇-DockerFile

一、简介 Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚 本。 构建步骤&#xff1a; 1、编写Dockerfile文件 2、docker build命令构建镜像 3、docker run依镜像运行容器实例 二、Docker构建过程解析 1、Dockerfile…

MySQL数据库入门(概念+使用)

目录 1. 数据库的概念 1.1 数据库的存储介质 1.2 主流数据库 2. MySQL的基本使用 2.1 链接数据库 2.2 服务器管理 2.3 数据库&#xff0c;服务器和表关系 2.4 简单MySQL语句 3. MySQL架构 4. SQL分类 5. 存储引擎 本篇完。 1. 数据库的概念 数据库是按照数据结构来…

LeetCode 热题 100 | 链表(上)

目录 1 基础知识 1.1 空指针 1.2 结构体 1.3 指针访问 1.4 三目运算符 2 160. 相交链表 3 206. 反转链表 4 234. 回文链表 菜鸟做题第三周&#xff0c;语言是 C 1 基础知识 1.1 空指针 使用 nullptr 来判断是否为空指针&#xff1a; if (headA nullptr) …

手把手教你搭建属于自己的网站(获取被动收入),无需服务器,使用github托管

大家好&#xff0c;我是亚洲著名程序员青松&#xff0c;本次教大家如何搭建一个属于自己的网站。 下面是我自己搭建的一个网站&#xff0c;是一个网址导航网站。托管在了github上面&#xff0c;目前已经运营了三个月&#xff0c;每天的访问量大约有100ip左右。 下图是在51.la上…

Flutter组件 StatefulWidget、StatelessWidget 可继承写法

前言 学过Java的同学&#xff0c;应该都知道面向对象语言的三大特征&#xff0c;封装、继承、多态&#xff1b; Dart也是面向对象的语言&#xff0c;但是在Flutter中的很多组件都被下划线 _ 标记为私有&#xff0c;导致无法继承&#xff0c;本文将介绍一种非私有的创建组件写…

Springboot 自定义参数配置化,密钥,密码,文件保存路径

application.properties 和 application.yml 都是一样的配置方法&#xff0c;只是格式不一样 定义配置文件 server.port8080 image.save.pathE:\ #自定义文件保存路径读取配置文件 Value("${image.save.path}")private String filePath;//E:\优化配置文件 如果我参…

处理安装uni-ui依赖一直安装不上

根据官方的文档去安装&#xff0c;我这边把npm换成了pnpm。 搞了一个小时没搞明白为什么下载不下来依赖&#xff0c;原因是镜像的问题。 处理方式&#xff1a;安装了cnpm&#xff0c;去访问国内镜像 安装cnpm&#xff0c;使用国内镜像 npm install -g cnpm --registryhttps…

Docker容器化安装SonarQube9.9

文章目录 1.环境准备1.1 版本信息1.2 系统设置 2.Docker环境安装2.1 卸载旧版本2.2 设置源2.3 安装Docker2.4 设置阿里仓库2.5 启动Docker 3.Docker Compose4.登录4.1 首页4.2 安装插件 5.制作镜像离线安装 1.环境准备 1.1 版本信息 名称版本备注Docker25.0.1当前2024-01-01最…

广州标点医药信息-米内网数据及咨询服务企业全方位解析!

米内网&#xff08;MENET&#xff09;原名中国医药经济信息网&#xff0c;由广州标点医药信息股份有限公司主办&#xff0c;2010年10月28日更名为“米内网”&#xff0c;上线初始主打医药销售数据库&#xff0c;经过十余年的迭代发展&#xff0c;现已成为国内主要的医药健康信息…

Android矩阵Matrix裁切setRectToRect拉伸Bitmap替代Bitmap.createScaledBitmap缩放,Kotlin

Android矩阵Matrix裁切setRectToRect拉伸Bitmap替代Bitmap.createScaledBitmap缩放&#xff0c;Kotlin class MyImageView : AppCompatImageView {private var mSrcBmp: Bitmap? nullprivate var testIV: ImageView? nullconstructor(ctx: Context, attrs: AttributeSet) :…

吸引企业选择的SD-WAN四大亮点

SD-WAN解决了传统组网所面临的各种挑战&#xff0c;尤其是分支数量众多且分散的问题&#xff0c;其实施交付成本远远低于传统方法&#xff0c;尤其在海外应用更为显著。因此&#xff0c;越来越多的企业正在转向SD-WAN网络。 为什么企业更倾向于选择SD-WAN呢&#xff1f;SD-WAN方…

【LVGL环境搭建】

LVGL环境搭建 win模拟器环境搭建一.二.三.四.五. Ubuntu模拟器环境搭建一. 前置准备二. 下载LVGL Source code&#xff1a;三. 安装sdl2&#xff1a;四. 开启VScode执行五. 安装扩展套件六. 按F5执行七. 执行结果 win模拟器环境搭建 一. 二. 三. 四. 五. Ubuntu模拟器环境…

flask基于django大数据的证券股票分析系统python可视化大屏

证券分析系统采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的Python进行编写&#xff0c;使用了Django框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对股票信息、股票买入、…

正点原子--STM32定时器学习笔记(1)(更新中....)

F1系列基本定时器&#xff08;TIM6 / TIM7&#xff09; 我们的目标是通过TIM6基本定时器定时500ms&#xff0c;让LED0每隔500ms闪一下&#xff01; 思路&#xff1a;使用定时器6&#xff0c;实现500ms产生一次定时器更新中断&#xff0c;在中断里执行“翻转LED0”。 定时器什…

留学生怎么合理使用ChatGPT ?还有哪些同类工具可以使用?

一篇篇相关于ChatGPT的文章陆陆续续铺天盖地的出现在我们面前。今天我们来看看怎么使用这个宝藏工具&#xff01; 文章主要内容为&#xff1a; 1.它是什么&#xff1f; 2.它能做什么&#xff1f; 3.作为留学生我们怎么使用它&#xff1f; 4.其他同类工具推荐 5.个人观点 一…