Vue学习day01:追风记事本

文章目录

  • 一、插值表达式
  • 二、Vue常用指令
    • 2.1 内容渲染指令
    • 2.2 条件渲染指令
    • 2.3 事件绑定指令
    • 2.4 属性绑定指令
    • 2.5 列表渲染指令
    • 2.6 双向绑定指令
  • 三、案例:追风记事本

一、插值表达式


插值表达式是一种Vue的模板语法,我们可以用插值表达式渲染出Vue提供的数据

1、以下的情况都是表达式:

money + 100
money - 100
money * 10
money / 10 
price >= 100 ? '真贵':'还行'
obj.name
arr[0]
fn()
obj.fn()

2、插值表达式语法:{{ 表达式 }}

<h3>{{title}}<h3>
<p>{{nickName.toUpperCase()}}</p>
<p>{{age >= 18 ? '成年':'未成年'}}</p>
<p>{{obj.name}}</p>
<p>{{fn()}}</p>

3.错误用法

1.在插值表达式中使用的数据 必须在data中进行了提供
<p>{{hobby}}</p>  //如果在data中不存在 则会报错
2.支持的是表达式,而非语句,比如:if   for ...
<p>{{if}}</p>
3.不能在标签属性中使用 {{  }} 插值 (插值表达式只能在标签中间使用)
<p title="{{username}}">我是P标签</p>

二、Vue常用指令


vue 中的指令按照不同的用途可以分为如下 6 大类:

  • 内容渲染指令(v-html、v-text)
  • 条件渲染指令(v-show、v-if、v-else、v-else-if)
  • 事件绑定指令(v-on)
  • 属性绑定指令(v-bind)
  • 双向绑定指令(v-model)
  • 列表渲染指令(v-for)

2.1 内容渲染指令

内容渲染指令用来渲染 DOM 元素的文本内容,常用的内容渲染指令有如下2个:
在这里插入图片描述
从下图可以知道,这两个指令都会覆盖标签中的内容。

在这里插入图片描述

2.2 条件渲染指令

条件判断指令,用来控制 DOM 的显示与隐藏。条件渲染指令有如下2个:

在这里插入图片描述

如下图代码,flag为true时,才会在网页上渲染数据。

在这里插入图片描述
下图是v-else-if、v-else的使用:当gender为1时,页面显示男,否则页面显示女;当score大于等于90时,页面显示成绩评定A,依次类推。

在这里插入图片描述

2.3 事件绑定指令

使用Vue时,为DOM注册事件,极其的简单,语法如下:
在这里插入图片描述
内联语句: 通过点击加减来控制数值大小。

在这里插入图片描述
事件处理函数传参: 如果不传递任何参数,则方法无需加小括号;methods方法中可以直接使用 e 当做事件对象;如果传递了参数,则实参表示事件对象,固定用法。
在这里插入图片描述

2.4 属性绑定指令

在这里插入图片描述
如下图所示,通过属性绑定,可以在页面上显示可爱的图片。

在这里插入图片描述

2.5 列表渲染指令

Vue提供了 v-for 列表渲染指令,用来基于一个数组来循环渲染一个列表结构。
在这里插入图片描述
如下图,通过点击删除事件,页面会删除对应数据,需要注意del()的写法。

在这里插入图片描述

v-for中的key:

在这里插入图片描述

  • key 的值只能是字符串或数字类型
    key 的值必须具有唯一性
    推荐使用 id 作为 key(唯一),不推荐使用 index 作为 key(会变化,不对应)

2.6 双向绑定指令

在这里插入图片描述
如下图,当我们把username和password进行双向数据绑定的时候,我们可以快速的获取或者设置表单元素内容。

在这里插入图片描述

三、案例:追风记事本

分析:
@keyup.enter="add" v-model="todoName":当我们按下回车键时,会触发add事件,用v-model完成双向数据绑定。

del()用来删除任务、add()用来新增任务,如果输入框没有任何内容,则提示"请输入任务名称";this.list.unshift()用来把任务数据放入list数组中,以时间戳为id值,todoName为name值;delAll()用来重置数组为空。

在这里插入图片描述

完整代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="./css/index.css" />
  <title>记事本</title>
</head>

<body>
  <!-- 主体区域 -->
  <section id="app">
    <!-- 输入框 -->
    <header class="header">
      <h1>追风记事本</h1>
      <input @keyup.enter="add" v-model="todoName" placeholder="请输入任务" class="new-todo" />
      <button class="add" @click="add">添加任务</button>
    </header>
    <!-- 列表区域 -->
    <section class="main">
      <ul class="todo-list">
        <li class="todo" v-for="(item, index) in list" :key="item.id">
          <div class="view">
            <span class="index">{{index+1}}.</span> <label>{{item.name}}</label>
            <button class="destroy" @click="del(item.id)"></button>
          </div>
        </li>
      </ul>
    </section>
    <!-- 统计和清空 -->
    <footer class="footer" v-show="list.length > 0">
      <!-- 统计 -->
      <span class="todo-count">合 计:<strong>{{list.length}}</strong></span>
      <!-- 清空 -->
      <button class="clear-completed" @click="delAll">
        清空任务
      </button>
    </footer>
  </section>

  <!-- 底部 -->
  <script src="../vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        todoName: '',
        list: []
      },
      methods: {
        del(id) {
          this.list = this.list.filter(a => a.id !== id)
        },
        add() {
          if (this.todoName.trim() === '') {
            alert('请输入任务名称')
            return
          }
          this.list.unshift({
            id: +new Date(),
            name: this.todoName
          })
          this.todoName = ''
        },
        delAll() {
          this.list = []
        }
      },
    })
  </script>
</body>

</html>

运行效果:
在这里插入图片描述

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

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

相关文章

RocketMQ底层通信机制

分布式系统各个角色间的通信效率很关键&#xff0c;通信效率的高低直接影响系统性能&#xff0c;基于Socket实现一个高效的TCP通信协议是很有挑战的&#xff0c;本节介绍RocketMQ是如何解决这个问题的。 1.Remoting模块 RocketMQ的通信相关代码在Remoting模块里&#xff0c;先…

电脑技巧:推荐基于浏览器的远程桌面访问控制工具

一、软件简介 Getscreen.me是一个基于浏览器的远程桌面访问控制工具&#xff0c;可以轻松地远程访问控制特定设备。并且注册登录账户实现允许设置具有永久访问权限的设备&#xff0c;可以通过一键进行快速连接访问&#xff0c;无需共享 ID、密码或任何内容。 Getscreen.me采用…

7.jvm对象内存布局

目录 概述对象里的三个区对象头验证代码控制台输出分析 验证2代码控制台输出 实例数据对其填充 访问对象结束 概述 jvm对象内存布局详解。 相关文章在此总结如下&#xff1a; 文章地址jvm基本知识地址jvm类加载系统地址双亲委派模型与打破双亲委派地址运行时数据区地址运行时数…

光明源@为什么需要智慧厕所,智慧厕所是干什么的?

在当今数字化时代&#xff0c;城市的发展日新月异&#xff0c;城市居民对生活品质和城市服务的期望也与日俱增。在城市规划和基础设施建设中&#xff0c;智慧厕所作为一项创新性的举措&#xff0c;正逐渐崭露头角。本文将探讨为什么需要智慧厕所以及它们的实际功能和意义。 城市…

SAP中销售业务的查询修改及冲销操作手册

目的 物流在销售订单发货开票出问题时进行查询分析及处理冲销的相关操作 触发条件 销售业务出现变更导致需要重新做销售或人为错误 必要条件 订单&#xff0c;交货单&#xff0c;发票己完成并过账 有用提示 在实际冲销业务过程中需要去分析&#xff0c;在了解业务的情况下去…

asp.net实验管理系统VS开发sqlserver数据库web结构c#编程web网页设计

一、源码特点 asp.net 实验管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发。 asp.net实验管理系统1 应用技术&am…

P6入门:项目初始化6-项目详情之资金Funding

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

百度文心一言

1分钟了解一言是谁&#xff1f; 一句话介绍【文心一言】 我是百度研发的人工智能模型&#xff0c;任何人都可以通过输入【指令】和我进行互动&#xff0c;对我提出问题或要求&#xff0c;我能高效地帮助你们获取信息、知识和灵感哦 什么是指令&#xff1f;我该怎么和你互动&am…

SAP-SD-外向交货单交期不符

创建外向交货单时报错 销售订单的交期还没到&#xff0c;所以不能做外向交货单 但是货已经加工完成&#xff0c;现在想交货 查看销售订单的交货期为12月15日&#xff08;va03&#xff09; 在VL01N里修改“选择日期为12月15日”就可以了。

7天入门python系列之第五天python项目练习

第七天 Python项目实操 编者打算开一个python 初学主题的系列文章&#xff0c;用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python&#xff0c;这是一个紧凑的学习计划。但并不是不可完成的。 学到第7天说明你已经对python有了一…

11.13堆的各种操作算法,二叉树的一些性质

算法 二叉堆的上调 在树上进行的插入排序 。循环次数不会超过树的高度&#xff0c;即插入交换次数不会超过ologn&#xff0c;n是结点个数 要么到根节点&#xff0c;即i1结束&#xff0c;要么当前元素还比上面的元素小&#xff0c;直到不比上面的元素小&#xff0c;即h[i/2]&l…

关于三维模型几何坐标修正的技术方法探究

关于三维模型几何坐标修正的技术方法探究 倾斜摄影三维模型的几何坐标修正是保证模型准确性和一致性的重要步骤。下面将探讨几种常见的技术方法用于倾斜摄影三维模型几何坐标修正。 1、块内坐标转换&#xff1a;在倾斜摄影中&#xff0c;可以将整个场景划分为多个块&#xff0…

k8s的service自动发现服务:实战版

Service服务发现的必要性: 对于kubernetes整个集群来说&#xff0c;Pod的地址也可变的&#xff0c;也就是说如果一个Pod因为某些原因退出了&#xff0c;而由于其设置了副本数replicas大于1&#xff0c;那么该Pod就会在集群的任意节点重新启动&#xff0c;这个重新启动的Pod的I…

LLM App ≈ 数据ETL管线

虽然现有的 LLM 应用程序工具&#xff08;例如 LangChain 和 LlamaIndex&#xff09;对于构建 LLM 应用程序非常有用&#xff0c;但在初始实验之外不建议使用它们的数据加载功能。 当我构建和测试我的LLM应用程序管道时&#xff0c;我能够感受到一些尚未开发和破解的方面的痛苦…

Spring事务之AOP导致事务失效问题

情况说明 首先开启了AOP&#xff0c;并且同时开启了事务。下面这个TransactionAspect就是一个简单的AOP切面&#xff0c;有一个Around通知。 Aspect Component public class TransactionAspect {Pointcut("execution(* com.qhyu.cloud.datasource.service.TransactionSe…

基于 Letterize.js + Anime.js 实现炫酷文本特效

如上面gif动图所示&#xff0c;这是一个很炫酷的文字动画效果&#xff0c;文字的每个字符呈波浪式的扩散式展开。本次文章将解读如何实现这个炫酷的文字效果。 基于以上的截图效果可以分析出以下是本次要实现的主要几点&#xff1a; 文案呈圆环状扩散开&#xff0c;扩散的同时…

YOLOv8-Seg改进:分割注意力系列篇 | 轻量级上采样CARAFE算子,助力小目标分割

🚀🚀🚀本文改进:轻量级上采样CARAFE算子,引入到YOLOv8,neck处 Upsanple替换为CARAFE 🚀🚀🚀CARAFE在小目标分割领域中应用广泛 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教…

LeetCode | 20. 有效的括号

LeetCode | 20. 有效的括号 OJ链接 这道题可以使用栈来解决问题~~ 思路&#xff1a; 首先我们要使用我们之前写的栈的实现来解决此问题~~如果左括号&#xff0c;就入栈如果右括号&#xff0c;出栈顶的左括号跟右括号判断是否匹配 如果匹配&#xff0c;继续如果不匹配&#…

算法笔记-第五章-质因子分解

算法笔记-第五章-质因子分解 小试牛刀质因子2的个数丑数 质因子分解最小最大质因子约数个数 小试牛刀 质因子2的个数 #include<cstdio> int main() {int n; scanf_s("%d", &n); int count 0; while (n % 2 0) {count; n / 2; }printf("%…

【Mysql系列】Mysql基础篇

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…