vue day1(主要是指令)

1、引包在这里插入图片描述
或者:cdn网址
在这里插入图片描述
2、创建实例,初始化渲染
请添加图片描述
3、插值表达式 {{}}
表达式:可以被求值的代码
请添加图片描述
请添加图片描述
4、响应式数据:数据发生变化,视图自动更新(底层是dom操作)
data中数据会被添加到实例上,用实例.属性名访问
vue核心特性:响应式

5、安装vue开发工具:调试

edge:在这里插入图片描述
chrome上同理

6、vue指令:带有v-前缀的特殊标签属性

(1)

插值表达式不具备解析标签的能力,直接将属性值原封不动显示到页面上请添加图片描述
请添加图片描述
(2)v-show和v-if:控制网页元素显示和隐藏
请添加图片描述
隐藏逻辑不一样,v-if直接没有这个标签了(创建和移除元素(条件渲染)),而v-show切换display:none来实现
不断创建和删除节点开销较大,故频繁切换显示隐藏用v-show

而只显示一次的,用v-show,其实元素还在页面中,导致页面结构冗余

(3)请添加图片描述
(4)v-on
注册事件=添加监听+提供处理逻辑
1、v-on:事件名=“内联语句”
vue中 数据是响应式的,一旦数据修改,视图自动更新

v-on:事件名可简写为@事件名

2、v-on:事件名=“methods中的函数名”
如何访问修改data中数据? 实例.属性名

可维护性不好,实例名改变,methods中也要相应变化请添加图片描述
methods中this指向vue实例,可通过this访问data中变量(eg.this.isShow)

传参请添加图片描述
(5)v-bind
插值表达式不能在标签属性中使用

v-bind:属性名=“表达式”
简写:省略v-bind

(6)v-for:把某个标签根据某个数组值(或其他)多次渲染(使用时要加上v-key)
请添加图片描述
index可省略,item in list

案例::key=“item.id”
请添加图片描述
v-for中的key:给列表项添加的唯一标识,便于vue进行列表项 正确排序复用。

(7)v-model请添加图片描述
请添加图片描述
示例:
请添加图片描述
(8)案例
v-for中通常用id作为key(唯一性)

解决一个bug:用户输入空白,点击添加任务会添加一个空任务。
加个判断,此处用上trim方法可以得到过滤掉左右两边空白字符的新字符串(用户可能输了几个空格才输入内容)
在这里插入图片描述
优化:如果没有任务,底部footer隐藏(属于非一次显示隐藏,用v-show)

标签中要访问v-for中item和index,也用插值表达式
在这里插入图片描述
删除的哪个li,id标示,要把id传给函数进行处理
在这里插入图片描述
自己写的:

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>// id #调用const app = new Vue({el: '#app',data: {// 和表单元素双向绑定 空字符串(初始)todoName: '',list: [{ id: 1, name: '跑步一公里' },{ id: 2, name: '跳绳200个' },{ id: 3, name: '游泳100米' },],},methods: {del(id) {this.list = this.list.filter(item => item.id !== id)},add() {this.list.unshift({//id是独一无二的id: +new Date(),name: this.todoName})},clear() {this.list = []}}})</script>

原本的:

<!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 v-model="todoName"  placeholder="请输入任务" class="new-todo" /><button @click="add" class="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 @click="del(item.id)" class="destroy"></button></div></li></ul></section><!-- 统计和清空 → 如果没有任务了,底部隐藏掉 → v-show --><footer class="footer" v-show="list.length > 0"><!-- 统计 --><span class="todo-count">合 计:<strong> {{ list.length }} </strong></span><!-- 清空 --><button @click="clear" class="clear-completed">清空任务</button></footer>
</section><!-- 底部 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>// 添加功能// 1. 通过 v-model 绑定 输入框 → 实时获取表单元素的内容// 2. 点击按钮,进行新增,往数组最前面加 unshiftconst app = new Vue({el: '#app',data: {todoName: '',list: [{ id: 1, name: '跑步一公里' },{ id: 2, name: '跳绳200个' },{ id: 3, name: '游泳100米' },]},methods: {del (id) {// console.log(id) => filter 保留所有不等于该 id 的项this.list = this.list.filter(item => item.id !== id)},add () {if (this.todoName.trim() === '') {alert('请输入任务名称')return}this.list.unshift({id: +new Date(),name: this.todoName})this.todoName = ''},clear () {this.list = []}}})</script>
</body>
</html>

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

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

相关文章

解决Dockerfile中 Could not initialize class sun.awt.X11FontManager错误

Dockerfile中增加命令 RUN yum install dejavu-sans-fonts fontconfig -y如果您使用的是基于Alpine Linux的发行版&#xff0c;可以使用apk命令来安装DejaVu Sans字体和fontconfig工具 RUN apk update RUN apk add ttf-dejavu fontconfig

设计数据库的时候会考虑哪些因素,怎样去建表?

在设计数据库时&#xff0c;通常会考虑以下因素&#xff1a; 数据的结构和关系&#xff1a;首先需要分析业务需求&#xff0c;了解需要存储的数据类型、数据之间的关系以及数据的组织结构。 数据的完整性和一致性&#xff1a;确保数据库中的数据完整性和一致性&#xff0c;例如…

CSDN规则详解——如何申请成为博客专家

文章目录 前言博客专家如何成为博客专家&#xff1f;博客专家列表后记 前言 博客专家是csdn推出的&#xff0c;很多童鞋可能还不知道如何申请成为博客专家或者成为博客专家之后有什么用。成为博客专家可以让您在专业领域分享您的知识和经验&#xff0c;与更多的读者建立联系&a…

服务器如何下载百度网盘数据

百度网盘作为镜像 国外用户传数据到我们服务器比较慢,但是传输百度网盘速度还是可以的。 这样我们就可以将百度网盘作为一个文件中转站。 但Linux系统下使用百度网盘有些麻烦,虽然百度网盘也有Linux版本,但服务器没开启图形界面,使用的是命令行。这个时候就得感谢开发者Ho…

如何进行iOS技术博客的备案?

​ 如何进行iOS技术博客的备案&#xff1f; 标题&#xff1a;iOS技术博客备案流程及要求解析 摘要&#xff1a; 在本篇问答中&#xff0c;我们将为iOS技术博主介绍如何进行备案。如果你的iOS应用只包含简单的页面&#xff0c;并通过蓝牙进行数据采集和传输&#xff0c;那么你…

Rust编程中的共享状态并发执行

1.共享状态并发 虽然消息传递是一个很好的处理并发的方式&#xff0c;但并不是唯一一个。另一种方式是让多个线程拥有相同的共享数据。在学习Go语言编程过程中大家应该听到过一句口号:"不要通过共享内存来通讯"。 在某种程度上&#xff0c;任何编程语言中的信道都类…

单链表的插入删除

#include <iostream>#include <stdio.h> #include <stdlib.h>using namespace std;//带头指针的单链表typedef struct LNode{int data;struct LNode *next;}LNode, *LinkList;bool InitList(LinkList &L){L (LNode *) malloc(sizeof(LNode));if(L NUL…

消息队列简介

什么是消息队列?&#xff08;Message queue&#xff0c;简称MQ&#xff09; 从字面理解就是一个保存消息的一个容器。那么我们为何需要这样一个容器呢&#xff1f; 其实就是为了解耦各个系统&#xff0c;我们来举个例子&#xff1a; 有这么一个简单的场景&#xff0c;系统A负…

Power Automate-与Microsoft Forms连接

创建自动化云端流&#xff0c;流的触发器选择第一个提交新回复时 点击蓝色的Change connection&#xff0c;登录创建Microsoft Forms表单的账号 选择提前创建的表单&#xff1b;如果想连接其他账号创建的Microsoft Forms表单&#xff0c;可以再次点击蓝色的Change connection&a…

DVWA - 3

文章目录 XSS&#xff08;Dom&#xff09;lowmediumhighimpossible XSS&#xff08;Dom&#xff09; XSS 主要基于JavaScript语言进行恶意攻击&#xff0c;常用于窃取 cookie&#xff0c;越权操作&#xff0c;传播病毒等。DOM全称为Document Object Model&#xff0c;即文档对…

Flutter开发实战之上传身份照片并认证

思路 UI视图 上传身份证照片可以选择拍照方式上传,相册选择方式上传即可 身份证照片进行认证功能实现 对身份证照片进行认证,包括正面认证和反面认证即可上传给后端 使用第三方插件 image_picker: ^0.8.4Future<XFile> _getCameraImage() async {final cameraImages = …

【k8s集群搭建(一):基于虚拟机的linux的k8s集群搭建_超详细_解决并记录全过程步骤以及自己的踩坑记录】

虚拟机准备3台Linux系统 k8s集群安装 每一台机器需要安装以下内容&#xff1a; docker:容器运行环境 kubelet:控制机器中所有资源 bubelctl:命令行 kubeladm:初始化集群的工具 Docker安装 安装一些必要的包&#xff0c;yum-util 提供yum-config-manager功能&#xff0c;另两…

LoadRunner Error -26377: No match found for the requested parameter 获取参数的方法要前置

web_reg_save_param("access_token","LBaccess_token\":\"", //获取返回参数左右边界值时&#xff1a;有"双引号时,需要使用\来进行转义"RB\",","SearchBody",LAST);web_reg_save_param("token_type&q…

一分钟禁用云服务器root用户改用自定义用户

目录 1、创建新用户&#xff1a; 2、为新用户分配sudo权限&#xff1a; 3、修改密码 : 4、测试新用户&#xff1a; 5、禁用root登录&#xff1a; 6、测试更改&#xff1a; 入手云服务器后的第一件事就是修改自定义用户&#xff0c;禁用root用户&#xff0c;博主已被暴力破…

尾插建立单链表

#include <iostream>#include <stdio.h> #include <stdlib.h>using namespace std;//带头指针的单链表typedef struct LNode{int data;struct LNode *next;}LNode, *LinkList;bool InitList(LinkList &L){L (LNode *) malloc(sizeof(LNode));if(L NUL…

快乐数[简单]

优质博文&#xff1a;IT-BLOG-CN 一、题目 编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为&#xff1a;对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1&#xff0c;也可能是无限循环但始终变不到1。如…

软件工程分析报告07测试计划书——基于Paddle的肝脏CT影像分割

目录 测试计划书 1. 引言 2. 测试目标 3. 测试方法 3.1 黑盒测试 (1)等价类划分&#xff1a; (2)边界值分析&#xff1a; (3)因果图&#xff1a; ​编辑&#xff08;4&#xff09;错误推测法 3.2 白盒测试 测试用例&#xff01;&#xff01; 4. 测试环境 5. 测试计划 6…

@Async注解的坑

问题描述 一个方法调用另一个方法(该方法使用Async注解)在同一个类文件中&#xff0c;该注解会失效&#xff01; 问题复现 TestAsyncController 类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; im…

MySQL时间类型注意事项

MySQL常见的时间类型有YEAR、DATE、TIME、DATETIME、TIMESTAMP&#xff0c;绝大多数业务都是精确到秒的&#xff0c;所以通常用后两种。并且MySQL5.6以后后两种支持精度到毫秒&#xff08;最多小数点后6位&#xff09; DATETIME占8字节&#xff0c;不论要不要毫秒 TIMESTAMP占4…

【MySQL】存储过程与函数

一、存储过程 1、什么是存储过程 它是一组经过预先编译的SQL的封装它被存储在MySQL服务器上&#xff0c;当需要执行它时&#xff0c;客户端只需要向服务器发出调用命令&#xff0c;就可以把这一系列预先存储好的SQL语句全部执行 2、存储过程的优缺点 优点 简化操作&#xf…