【Vue】案例——To do list:

【Vue】案例——To do list:

  • 一、案例介绍:
  • 二、效果展示(如图)
  • 三、主要功能:
  • 四、技术要点:
      • 补充:【Vue】Vue模板语法(点击可跳转)
      • 补充:【Vue】数据绑定(单双向)(点击可跳转)
  • 五、代码解析:
      • 1.body部分
      • 2.script部分
      • 3.CSS样式部分

一、案例介绍:

这个案例是一个简单的待办事项列表(To Do List)应用,使用了 Vue.js 框架来实现动态数据绑定和交互功能。用户可以在输入框中输入待办事项,并通过点击“增加”按钮将其添加到列表中。待办事项会以列表的形式展示在页面上,用户还可以通过点击“删除”链接来移除特定的事项。

二、效果展示(如图)

在这里插入图片描述

三、主要功能:

1.添加待办事项:用户输入内容并点击“增加”按钮,内容会被添加到待办事项数组中;
2.删除待办事项:用户可以点击每个事项旁边的“删除”链接来移除该事项;
3.输入验证:在添加事项时,应用会检查输入是否为空或是否已存在于列表中,并给出相应的提示;

四、技术要点:

1.使用 Vue.js 进行数据绑定和事件处理;
2.利用 v-model 指令实现输入框与数据的双向绑定;
3.使用 v-for 指令动态渲染待办事项列表;

补充:【Vue】Vue模板语法(点击可跳转)

补充:【Vue】数据绑定(单双向)(点击可跳转)

五、代码解析:

1.body部分

在这里插入图片描述

<body><div id='app'><div class="box"><!-- 如何获取输入框内容,如何将获取到的内容展示到页面上 【将内容保存到数组中去】--><h3>To do list</h3><div class="list_con"><input type="text" v-model="txt"><button @click="add()">增加</button></div><div class="list"><!-- 连续出现的标签、标签块1.将标签、标签块重写一遍2.将重复出现的标签、标签块里面的“内容”保存到数组中去3.将v-for写在重复出现标签、标签块身上--><ul><li v-for="item in arr"><span>{{item}}</span><!-- 点击删除时候如何指定元素 --><a href="javascript:;" @click="del(index)">删除</a></li></ul></div></div></div></body>

2.script部分

在这里插入图片描述

<script>new Vue({el: '#app',data: {txt: "",    // 保存input框的内容arr: ["学习html", "学习css", "学习javascript"]},methods: {// 增加功能add() {// this.txt    // 输入框输入的内容// push:将内容添加到数组最后一项   pop:删除数组最后一项// unshift:将内容添加到数组最前面一项   shift:删除数组最前面一项if (this.txt.trim() == '') {alert("请输入内容,再进行添加!")return} else if (this.arr.includes(this.txt.trim())) {alert("该内容已存在,请重新输输入其他内容")this.txt = ''} else {this.arr.unshift(this.txt)this.txt = ''}},// 删除功能// 定义函数给形参,调用函数给实参del(index) {// splice(操作的元素的索引值,删除个数,添加的内容)this.arr.splice(index, 1);}}})
</script>

3.CSS样式部分

在这里插入图片描述

    <style>.box {margin: 10px auto;width: 600px;}.list_con input {width: 540px;}.list ul {padding: 0;}.list li {list-style: none;border-bottom: 1px solid #ccc;padding: 15px 0;}.list li a {float: right;text-decoration: none;}</style>
  • 案例——To do list整体代码如下:
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>To do list2</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script><style>.box {margin: 10px auto;width: 600px;}.list_con input {width: 540px;}.list ul {padding: 0;}.list li {list-style: none;border-bottom: 1px solid #ccc;padding: 15px 0;}.list li a {float: right;text-decoration: none;}</style>
</head><body><div id='app'><div class="box"><!-- 如何获取输入框内容,如何将获取到的内容展示到页面上 【将内容保存到数组中去】--><h3>To do list</h3><div class="list_con"><input type="text" v-model="txt"><button @click="add()">增加</button></div><div class="list"><!-- 连续出现的标签、标签块1.将标签、标签块重写一遍2.将重复出现的标签、标签块里面的“内容”保存到数组中去3.将v-for写在重复出现标签、标签块身上--><ul><li v-for="item in arr"><span>{{item}}</span><!-- 点击删除时候如何指定元素 --><a href="javascript:;" @click="del(index)">删除</a></li></ul></div></div></div></body>
<script>new Vue({el: '#app',data: {txt: "",    // 保存input框的内容arr: ["学习html", "学习css", "学习javascript"]},methods: {// 增加功能add() {// this.txt    // 输入框输入的内容// push:将内容添加到数组最后一项   pop:删除数组最后一项// unshift:将内容添加到数组最前面一项   shift:删除数组最前面一项if (this.txt.trim() == '') {alert("请输入内容,再进行添加!")return} else if (this.arr.includes(this.txt.trim())) {alert("该内容已存在,请重新输输入其他内容")this.txt = ''} else {this.arr.unshift(this.txt)this.txt = ''}},// 删除功能// 定义函数给形参,调用函数给实参del(index) {// splice(操作的元素的索引值,删除个数,添加的内容)this.arr.splice(index, 1);}}})
</script></html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导入 .sql 文件到 云服务器上的MySQL中

导入 .sql 文件到 云服务器上的MySQL中 步骤 1&#xff1a;确保 .sql 文件已上传到云服务器步骤 2&#xff1a;登录到云服务器步骤 3&#xff1a;检查文件是否成功传输步骤 4&#xff1a;登录 MySQL步骤 5&#xff1a;创建空数据库&#xff08;如果尚未创建&#xff09;步骤 6&…

我的机器学习之路(初稿)

文章目录 一、机器学习定义二、核心三要素三、算法类型详解1. 监督学习&#xff08;带标签数据&#xff09;2. 无监督学习&#xff08;无标签数据&#xff09;3. 强化学习&#xff08;决策优化&#xff09;(我之后主攻的方向) 四、典型应用场景五、学习路线图六、常见误区警示七…

VueDOMPurifyHTML 防止 ​​XSS(跨站脚本攻击)​​ 风险

VueDOMPurifyHTML 是一个 ​​Vue.js 插件​​&#xff0c;用于在 v-html 指令中安全地渲染 HTML 内容&#xff0c;防止 ​​XSS&#xff08;跨站脚本攻击&#xff09;​​ 风险。 ​​作用​​ ​​解决 v-html 的安全问题​​ Vue 的 v-html 会直接渲染原始 HTML&#xff0…

【数据结构】之散列

一、定义与基本术语 &#xff08;一&#xff09;、定义 散列&#xff08;Hash&#xff09;是一种将键&#xff08;key&#xff09;通过散列函数映射到一个固定大小的数组中的技术&#xff0c;因为键值对的映射关系&#xff0c;散列表可以实现快速的插入、删除和查找操作。在这…

How AI could empower any business - Andrew Ng

How AI could empower any business - Andrew Ng References 人工智能如何为任何业务提供支持 empower /ɪmˈpaʊə(r)/ vt. 授权&#xff1b;给 (某人) ...的权力&#xff1b;使控制局势&#xff1b;增加 (某人的) 自主权When I think about the rise of AI, I’m reminded …

微服务的服务调用详解以及常见解决方案对比

微服务服务调用详解 1. 服务调用分类 服务调用根据通信方式、同步性、实现模式可分为以下类型&#xff1a; 按通信协议分类 类型典型协议/框架特点RPC&#xff08;远程过程调用&#xff09;Dubbo、gRPC、Apache Thrift高性能、二进制协议、强类型定义HTTP/RESTSpring RestTe…

MySQL:B+树索引

InnoDB索引方案 为了使用二分法快速定位具体的目录项&#xff0c;假设所有目录项都可以在物理存储器上连续存储&#xff0c;有以下问题&#xff1a; InnoDB使用页为管理存储空间的基本单位&#xff0c;最多只能保证16KB的连续存储空间&#xff0c;记录数据量多可能需要非常大…

THCON 2025

Crypto OTPas_ouf 用10个字符异或加密的jpg图片&#xff0c;通过头得到key再恢复原图 Mammoths Personnal Slot Machine 梅森旋转恢复 from pwn import * from randcrack import RandCrack from tqdm import trange context.log_level errorp remote(74.234.198.209, 33…

3.8 字符串的常用函数

重点&#xff1a;字符串的常用函数 #1.测试转换大小写 lower:大写->小写 upper&#xff1a;小写->大写 swapcase&#xff1a;自动将大写转小写小写转大写 print("ABC".lower()) #abcprint("abc".upper()) #ABCprint…

Docker:SkyWalking 链路追踪的技术指南

1、简述 Apache SkyWalking 是一个开源的 APM(应用性能监控)工具,能够实现分布式系统的全链路监控、性能分析以及服务依赖关系分析。SkyWalking 支持多种语言的探针,提供强大的可视化监控和分析能力,是微服务架构下性能调优和问题排查的利器。 样例代码: https://gitee.…

[Lc] 最长公共子序列 | Fenwick Tree(树状数组):处理动态前缀和

目录 LCR 095. 最长公共子序列 题解 Fenwick Tree&#xff08;树状数组&#xff09;&#xff1a;处理动态前缀和 一、问题背景&#xff1a;当传统方法遇到瓶颈 二、Fenwick Tree核心设计 2.1 二进制索引的魔法 2.2 关键操作解析 更新操作&#xff08;O(log n)&#xff0…

python3.13.0环境安装及python-docx库安装指南

1. Python环境安装 1.1 Windows系统安装Python 下载Python安装包 • 访问Python官网 • 点击"Download Python 3.x.x"&#xff08;推荐使用3.8及以上版本&#xff09; 2. 运行安装程序 • 双击下载的安装包 • 重要&#xff1a;勾选"Add Python to environmen…

前端VUE框架理论与应用(4)

一、计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如: <div id="example">{{ message.split().reverse().join() }}</div> 在这个地方,模板不再是简单的声明式逻辑。你…

MySQL:存储函数和存储过程

系列文章目录 1.MySQL编程基础 2.程序控制流语句 3.存储过程 4.游标 5.嵌入式SQL 文章目录 系列文章目录前言一、程序控制流语句&#xff1a;二、存储函数&#xff1a; 1.存储函数的特点&#xff1a;2.存储函数的定义&#xff1a;3.调用存储函数 三、存储过程&#xff1a;…

基础贪心算法集合2(10题)

目录 1.单调递增的数字 2.坏了的计算器 3.合并区间 4.无重叠区间 5. 用最少数量的箭引爆气球 6.整数替换 解法1&#xff1a;模拟记忆化搜索 解法2位运算贪心 7.俄罗斯套娃信封问题 补充.堆箱子 8.可被3整除的最大和 9.距离相等的条形码 10.重构字符串 1.单调递增的数字…

RaabitMQ 快速入门

&#x1f389;欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ &#x1f389;感谢各位读者在百忙之中抽出时间来垂阅我的文章&#xff0c;我会尽我所能向的大家分享我的知识和经验&#x1f4d6; &#x1f389;希望我们在一篇篇的文章中能够共同进步&#xff01;&#xff01;&…

语音识别——根据声波能量、VAD 和 频谱分析实时输出文字

SenseVoiceSmall网络结构图 ASR(语音识别)是将音频信息转化为文字的技术。在实时语音识别中,一个关键问题是:如何决定将采集的音频数据输入大模型的最佳时机?固定时间间隔显然不够灵活,太短可能导致频繁调用模型,太长则会延迟文字输出。有没有更智能的方式?答案是肯定…

AI大模型如何重塑科研范式:从“假说驱动”到“数据涌现”

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:科研进入“模型共研”时代 传统科研范式通常以“假设→实验→验证→理论”的方式推进,这一经典路径建立在人类的认知能力与逻辑推理基础上。然而,随着数据规模的爆炸式增长与知识系统的高度复杂…

使用Python写入JSON、XML和YAML数据到Excel文件

在当今数据驱动的技术生态中&#xff0c;JSON、XML和YAML作为主流结构化数据格式&#xff0c;因其层次化表达能力和跨平台兼容性&#xff0c;已成为系统间数据交换的通用载体。然而&#xff0c;当需要将这类半结构化数据转化为具备直观可视化、动态计算和协作共享特性的载体时&…

面试题:Eureka和Nocas的区别

Eureka 与 Nacos 核心区别对比 一、功能定位与核心能力 ‌维度‌‌Eureka‌‌Nacos‌‌核心功能‌专注服务注册与发现&#xff0c;无配置管理功能‌:ml-citation{ref“1,3” data“citationList”}集成服务注册、发现、配置管理、动态DNS等‌:ml-citation{ref“1,3” data“c…