接上一篇...

V标签综合使用:记事本案例

功能:

在实现列表渲染和删除功能的基础上,增加了数据添加以及数据统计,同时要求底部统计和清空区域在事件数目为0时不显示。

思路:

整体架构分为三部分:头部使用v-model绑定用户输入,并且绑定add方法,通过回车或点击按钮触发数据添加事件;主体部分使用 v-for 渲染数据列表,并在每个列表项内放置一个绑定了 del方法的“删除”按钮,点击按钮时会触发方法,根据传入的 ID 删除相应数据源中的项目;底部根据数据列表的length显示事件总数,同时设置了“清空”按钮绑定了清空数据数组的方法,此外使用v-show基于数据是否为空决定底部统计区域显示与否。

代码:

html:
<div id="app">
<!-- 头部区域 -->
<header>
<h2>记事本</h2>
<input @keyup.enter="add" v-model="newName" placeholder="请输入任务">
<button @click="add">添加任务</button>
</header> <!-- 列表区域 -->
<section>
<ul>
<li v-for="(item,index) in list" :key="item.id">
<span>{{ index + 1 }}.</span><label>{{ item.name }}</label>
<Button @click="del(item.id)" style="height: 20px; line-height: 10px;">x</Button>
</li>
</ul>
</section> <!-- 统计和清空 当任务数为0时,不显示-->
<footer v-show="list.length > 0">
<span>合计:{{ list.length }}</span>
<button @click="del_all">清空任务</button>
</footer>
</div>
js:
<script>
const app = new Vue({
el: '#app',
data: {
newName: '',
list: [
{id: 1, name: '吃喝玩乐'},
{id: 2, name: '打游戏'},
{id: 3, name: '看剧'},
{id: 4, name: '出去玩!'}
]
},
methods: {
del(id){
this.list = this.list.filter(item => item.id != id);
},
add(){
//防止输入为空:为空时提示!
if(this.newName.trim() === ''){
alert('请输入任务!')
return
}
//为保证ID唯一,使用Date()
this.list.unshift({
id: +new Date(),
name: this.newName
}),
//当完成添加后,输入框内清空
this.newName = ''
},
del_all(){
this.list = [];
}
}
})
</script>
css:

(感觉是最难写的部分,当下只追求效果

<style>
#app{
width: 500px;
text-align: center;
}
header{
background-color: #abc;
}
section{
width: 500px;
background-color: #ffd;
margin-top: -20px;
}
ul{
list-style: none;
text-align: left;
}
li{
height: 50px;
line-height: 50px;
} footer span{
//“子相父绝”,父元素为整个页面
position: absolute;
left: 10px;
}
footer button{
position: absolute;
left: 350px;
}
</style>

Vue学习:3.V标签综合3的更多相关文章

  1. vue学习之template标签

    HTML5提供的新标签,具有以下特性: 1.该元素天生display:none,同时模板元素内部内容也是隐藏的 2.位置任意,可以在<head>中,也可以在<body>或者&l ...

  2. vue学习第一部

    目录 基础操作 vue基础使用 步骤 vue的框架思想(mvvm) 显示数据 vue 常用指令 属性操作 事件绑定 操作样式 条件渲染指令 列表渲染指令 vue对象提供的属性功能 过滤器 计算和侦听属 ...

  3. vue学习笔记(二)——简单的介绍以及安装

    学习编程需要的是 API+不断地练习^_^ Vue官网:https://cn.vuejs.org/ 菜鸟教程:http://www.runoob.com/vue2/vue-tutorial.html ...

  4. day 82 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  5. day 81 Vue学习一之vue初识

      Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js ...

  6. day 81 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  7. day 80 Vue学习一之vue初识

    Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js框架 ...

  8. Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)

    (五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二  Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...

  9. Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习

    一  使用环境: windows 7 64位操作系统 二  IDE:VSCode/PyCharm 三  Vue.js官网: https://cn.vuejs.org/ 四  下载安装引用 方式1:直接 ...

  10. Vue学习笔记-nodejs+vue-cli4+webpack按装配置+项目创建

    一  使用环境: windows 7 64位操作系统 二  Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nodejs的官网下载  https: ...

随机推荐

  1. 深入解读:获得 2021 Forrester 全球云数仓卓越表现者的阿里云数据仓库

    简介: 阿里云在最新发布的 The Forrester Wave: Cloud Data Warehouse, Q1 2021 全球云数据仓库技术评比中进入卓越表现者象限,成为国内唯一入选厂商.本文针 ...

  2. [ELK] 生产环境使用 Elasticsearch Docker 镜像的优化选项

    [ 配置内核设置 vm.max_map_count 至少为 262144 ] https://www.elastic.co/guide/en/elasticsearch/reference/curre ...

  3. 第8讲 browse命令的使用技巧

    第8讲 browse命令的使用技巧 1.浏览所有parts,使用技巧 选中工程文件*.dsn/Edit/Browse/Parts.列出工程中用到的所有元件,方便在画完原理图后,查看哪些元件没有编号或数 ...

  4. C#.NET体系图文概述—2024最全总结

    C# 是一种简单.现代.面向对象和类型安全的编程语言.. .NET 是由 Microsoft 创建的开发平台,平台包含了语言规范.工具.运行,支持开发各种应用,如Web.移动.桌面等..NET框架有多 ...

  5. SqlServer2008R2 在开始菜单中找不到配置管理器

    直接找到C:\Windows\SysWOW64\SQLServerManager10.msc,打开即可.

  6. 自定义Lua解析器管理器-------演化脚本V0.5

    [3]自定义Lua解析器管理器-------演化脚本V0.5 方便我们在项目中使用Lua解析方法,我们封装管理一个lua解析器,管理LuaState的方法执行. 解析器脚本: using LuaInt ...

  7. MacOS安装和使用标注软件“labelImg”教程

    原文发布于:https://blog.zhaoxuan.site/archives/16.html: 第一时间获取最新文章请关注博客个人站:https://blog.zhaoxuan.site. 简介 ...

  8. centos7桌面版安装百度网盘

    百度网盘官网下载Linux版本的软件 CentOS7的软件包格式为rpm # 安装依赖 yum -y install libXScrnSaver yum -y install libstdc++.so ...

  9. postgresql 创建索引

    --查询索引 select * from pg_indexes where tablename='tab1'; --创建索引(查询用到哪几列,就对哪几个字段创建索引) CREATE INDEX ind ...

  10. vue和react的相同点和不同点

    Vue和React作为现代前端开发中流行的两个JavaScript框架,它们有诸多相似之处,同时也存在一些关键性的不同.以下是Vue和React的一些主要相同点和不同点: 相同点: 虚拟DOM:Vue ...