目录

一、验证用户名是否已经被注册过

二、过滤器

三、图书管理系统

四、axios网络请求


一、验证用户名是否已经被注册过

1.案例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js" type="text/javascript" charset="utf-8"></script></head><body><div id="app">用户名:<input type="text" v-model="uname" />{{msg}}</div><script>var vue = new Vue({el:"#app",data:{ //属性uname:"",msg:""},watch:{ //监听属性uname(){ //监听uname绑定的输入框里面的值发生变化时,触发当前的函数// alert(this.uname);if("admin" === this.uname){ //模拟admin被注册过,实际开发中这个admin是查询数据库得到的this.msg = "此用户已被注册过,请重新输入"}else{this.msg = "可以注册"}}}})</script></body>
</html>

二、过滤器

1.过滤器的关键字是filters,也是和el、data、methods、computed、watch等同级的。

(1)格式:filters:{}

2.在filters的大括号中可以写一些转换数据的函数;这些函数中一般有两个参数,第一个参数用来接收要转换的值,第二个参数用来接收提示信息。

3.调用过滤器中的函数的格式:{{要转换的数据|filters中转换数据的函数("提示信息")}}。

4.作用:格式化数据,比如将字符串格式化为字符大写或小写,比如将日期格式化为指定格式,简单来说,过滤器就是过滤的,可以将数据在过滤器中进行一些转换。

5.注意:如果在使用过滤器的时候,只有一个参数,那么调用函数时,函数可以不写括号。

6.案例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js" type="text/javascript" charset="utf-8"></script></head><body><div id="app">{{msg|upperChange("转换之后:")}}<br />{{msg2|lowerChange("转小写:")}}<br />{{date|dateformat("中国时间:")}}<br /></div><script>var vue = new Vue({el:"#app",data:{msg:"hello vue",msg2:"HELLO VUE",date:new Date()},filters:{//过滤器//大写转小写upperChange(a,args){//第一个参数用来接收{{msg|upperChange("转换之后:")}}中msg的数据,args用来接收描述数据return args + a.toUpperCase();},//小写转大写lowerChange(a,args){return args + a.toLowerCase();},//日期格式的转换(开发中常用)dateformat(val,args){//              年月                          月份(0-11)              日return args+val.getFullYear() + "-" + (val.getMonth()+1) + "-" + val.getDate() + " " + val.getHours() + ":" + val.getMinutes() + ":" + val.getSeconds();}}})</script></body>
</html>

三、图书管理系统

1.Vue的数组的操作(变异方法)

(1)indexOf():获取当前元素在数组中的下标。

  • 格式:数组名.indexOf(数组元素)

(2)push():方法可向数组的末尾添加一个或多个元素,并返回新的长度。

(3)pop():方法用于删除并返回数组的最后一个元素。

(4)shift():方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

(5)unshift():方法可向数组的开头添加一个或更多元素,并返回新的长度。

(6)splice():方法向/从数组中添加/删除项目,然后返回被删除的项目。

  • 格式:splice(index,len,[item])
    • index:数组开始下标。
    • len:替换/删除的长度。
    • item:替换的值,删除操作的话item为空。
  • 可以用来添加/删除/替换数组内某一个或几个值。
  • 该方法会改变原始数组。

(7)sort():方法用于对数组的元素进行排序。

(8)reverse():方法用于颠倒数组中的元素顺序。

(9)concat():方法用于连接两个或多个数组。

(10)slice():方法可从已有的数组中返回选定的元素。

2.案例:

(1)css样式:

table td{border: 1px dashed orange;
}
table{border-collapse: collapse; /* 设置table的线条为单线条 */
}
tr{text-align: center;
}
.grid{width: 500px;margin: auto;
}
.title,.titleup{background-color: orange;
}

(2)html案例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/vue.js" type="text/javascript" charset="utf-8"></script><link rel="stylesheet" type="text/css" href="css/abc.css"/></head><body><div id="app"><div class="grid"><table><tr class="titleup"><td colspan="4">编号:<input type="text" v-model="code" />名称:<input type="text" v-model="name" /><input type="button" value="提交" @click="add()" /></td></tr><tr class="title"><td>编号</td><td>名称</td><td>时间</td><td>操作</td></tr><tr v-for="book in books"><td>{{book.id}}</td><td>{{book.name}}</td><td>{{book.date|dateformat}}</td><td><a href="#" @click="edit(book)">修改</a>|<a href="#" @click="deleteBook(book)">删除</a></td></tr></table></div></div><script>var vue = new Vue({el:"#app",data:{code:"",name:"",flag:false, //false的状态时,是添加书籍的状态;true的状态时,是修改书籍的状态index:-1,books:[ //实际开发中我们后台开发人员,就是通过axios发送请求从数据库中取这个数据{id:1,name:"三国演义",date:new Date()},{id:2,name:"红楼梦",date:new Date()},{id:3,name:"水浒传",date:new Date()}]},methods:{//添加数据add(){if(this.code.length != 0 && this.name.length != 0 && !this.flag){//创建一个对象封装书籍数据(id,name,date)var newBook = new Object();newBook.id = this.code;newBook.name = this.name;newBook.date = new Date();//把当前newBook中的数据加入的books数组中this.books.push(newBook);//清空输入框中的数据this.code = "";this.name = "";}else if(this.code.length != 0 && this.name.length != 0){//修改状态this.books[this.index].id = this.code;//java数组中 books[0].name books[1] books[2]this.books[this.index].name = this.name;this.flag = false;//清空输入框中的数据this.code = "";this.name = "";}},//修改数据edit(book){this.flag = true;this.code = book.id;this.name = book.name;this.index = this.books.indexOf(book);},//删除数据deleteBook(book){// alert(book.name)//从数组中移除一个元素//先获取当前元素在数组中的下标索引var bookIndex = this.books.indexOf(book);//执行移除操作,第一个参数是要删除的元素的下标,第二个元素是要删除的个数this.books.splice(bookIndex,1);}},filters:{//日期的格式转换dateformat(val){return val.getFullYear() + "-" + val.getMonth() + "-" + val.getDate();}}})</script></body>
</html>

四、axios网络请求

1.需要导入axios.js框架

2.发送get请求

(1)格式:axios.get("发送的地址",{params:{'键1':'值1','键2':'值2',...}}).then(function(response){})

(2)注意:第二个参数里放的json数据,then里面的function函数是用来接收反馈回来的数据的

(3)可以在函数中使用alert(response.data)去查看一下返回的数据

3.发送post请求

(1)发送post请求的话,需要将发送的数据使用对象封装

  • 使用URLSearchParams()对象封装
  • var params = new URLSearchParams();
  • 使用append往这个对象中添加数据
  • params.append("键","值");

(2)发送格式:axios.post("地址",封装的数据对象).then(function(response){alert(response.data)//显示服务器返回的信息}).catch(function(error){alert(error)//显示错误信息})

4.案例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>axios请求</title><script src="js/vue.js" type="text/javascript" charset="utf-8"></script><script src="js/axios.js" type="text/javascript" charset="utf-8"></script></head><body><div id="app">用户名:<input type="text" v-model="uname" /><br /> <!-- v-model的设置用来获取表单输入框中的数据 -->密码:<input type="password" v-model="pwd" /><br /><input type="button" @click="submit()" value="提交" /></div><script>var vue = new Vue({el:"#app",data:{uname:"小丽",pwd:"123"},methods:{submit(){//这个数据往服务器端发送,需要后面学习axios发送post/get网络请求技术//需要使用axios.js发送网络的请求//get请求  这个数据往服务器端发送,需要后面学习axios网络请求技术// axios.get("https://www.baidu.com",{// 	params:{'uname':this.uname,'pwd':this.pwd},// 	})// .then(function(response){ //then接收后台服务器的数据反馈// 	alert(response.data);// }).catch(function(error){ //catch如果有异常,捕获异常// 	alert(error);// });//POST请求//使用对象封装post请求提交的参数,需要放入请求体中var params = new URLSearchParams();//加入需要提交的数据params.append("uname",this.uname);params.append("pwd",this.pwd);axios.post("https:www.baidu.com",params).then(function(response){alert("post请求:" + response.data);}).catch(function(error){alert(error);})}}})</script></body>
</html>

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

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

相关文章

hyper-v虚拟机启动失败:Virtual Pci Express Port无法打开电源,因为发生错误,找不到即插即用设备

启动错误 今天启动某个hyper-v虚拟机时&#xff0c;启动失败了&#xff0c;大概的错误信息为&#xff1a;尝试更改“ubuntu_desktop_2204”的状态时应用程序遇到错误。Virtual Pci Express Port (实例 ID 0445948B-C377-4912-AEEB-58A3D45C5694): 无法开机&#xff0c;因…

CSS包含块与百分比取值机制完全指南

引言&#xff1a;为什么需要理解包含块&#xff1f; 在CSS布局的世界中&#xff0c;包含块(Containing Block) 是一个基础但至关重要的概念。它就像是一个隐形的参考框架&#xff0c;决定了元素如何定位、尺寸如何计算以及百分比值如何解析。许多CSS开发者在使用百分比单位时遇…

Numpy科学计算与数据分析:Numpy数组操作入门:合并、分割与重塑

Numpy数组操作实战 学习目标 通过本课程的学习&#xff0c;学员将掌握Numpy中数组的基本操作&#xff0c;包括数组的合并、分割以及重塑等技巧&#xff0c;能够灵活运用这些操作处理数据&#xff0c;为后续的科学计算和数据分析打下坚实的基础。 相关知识点 Numpy数组操作 …

11_Mybatis 是如何进行DO类和数据库字段的映射的?

11_Mybatis 是如何进行DO类和数据库字段的映射的&#xff1f; 假设 VideoAbnormalContentMapper.xml 文件有如下方法&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN&quo…

2025年渗透测试面试题总结-06(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 逻辑漏洞 一、三大高危业务逻辑漏洞及修复方案 1. 订单金额篡改&#xff08;参数操纵&#xff09; 2. 重…

SpringBoot激活指定profile的方式

题目详细答案在 Spring Boot 中&#xff0c;可以通过多种方式激活指定的 Profile&#xff0c;以便在不同的环境中使用不同的配置。在application.properties文件中激活可以在默认的application.properties文件中通过spring.profiles.active属性激活某个 Profile。# application…

Pytest项目_day10(接口的参数传递)

接口的参数传递 如果我们需要在一个测试用例中使用另一个测试用例中获得的数据&#xff0c;应该怎么办&#xff1f; 解决方案一&#xff1a;使用函数返回值 - 我们可以在另一个测试用例中使用return来返回所需的数据&#xff0c;并在其他的测试用例中调用该测试用例&#xff08…

深信服GO面试题及参考答案(上)

Go 和 Java 的特点和区别是什么? Go 和 Java 都是静态类型、编译型语言,但在设计理念、语法特性、并发模型等方面存在显著差异,具体如下: 从语言设计目标来看,Go 由 Google 开发,旨在解决大型系统开发中的复杂性,强调“简单、高效、并发”,语法简洁,摒弃了许多传统面向…

BGP笔记及综合实验

BGP基础一、BGP产生背景 - BGP定义&#xff1a;边界网关协议&#xff08;BGP&#xff09;是自治系统间的动态路由协议&#xff0c;属于外部网关协议&#xff08;EGP&#xff09;。 - 自治系统&#xff08;AS&#xff09;&#xff1a;由统一管理、运行同一IGP协议的路由器组成&a…

全栈:如何判断自己应该下载哪个版本的Tomcat

版本兼容性矩阵 https://tomcat.apache.org/whichversion.html https://tomcat.apache.org/download-11.cgi 介绍一下这些版本的不同点&#xff1a; 一、按系统选&#xff08;优先看这个&#xff09; 1.Windows 系统&#xff08;普通使用&#xff0c;非服务自启&#xff09…

Redis的Linux安装

可以直接命令下载 wget http://download.redis.io/releases/redis-5.0.4.tar.gz下载好之后解压缩&#xff0c;并且重命名为redis 由于redis是c语言编写的&#xff0c;所以我们需要先安装gcc&#xff0c;安装的命令如下&#xff1a;yum -y install gcc 安装成功后输入 : gcc -v…

14-netty基础-手写rpc-提供方(服务端)-06

netty系列文章&#xff1a; 01-netty基础-socket02-netty基础-java四种IO模型03-netty基础-多路复用select、poll、epoll04-netty基础-Reactor三种模型05-netty基础-ByteBuf数据结构06-netty基础-编码解码07-netty基础-自定义编解码器08-netty基础-自定义序列化和反序列化09-n…

连续时间和数字之间频率的偏差以及相位补偿

接下来需要讲解在连续时间域下的角频率以及在离散化后的数字角频率。上面可以知道模拟角频率和数字的区别 接下来介绍相位 相位单位是弧度无频偏&#xff1a; 对于数字来说是对连续信号采样后的结果&#xff0c;数字的角频率 &#xff0c;就是相位的递增量&#xff0c;表示每个…

《Git从入门到精通:告别版本管理混乱》

坚持用 清晰易懂的图解 代码语言&#xff0c;让每个知识点变得简单&#xff01; &#x1f680;呆头个人主页详情 &#x1f331; 呆头个人Gitee代码仓库 &#x1f4cc; 呆头详细专栏系列 座右铭&#xff1a; “不患无位&#xff0c;患所以立。” 《Git从入门到精通&#xff1a…

小红书开源多模态视觉语言模型DOTS-VLM1

项目简介与模型基本介绍 DOTS-VLM1 是由小红书希实验室(Rednote HiLab)开源的多模态视觉语言模型(Vision-Language Model, VLM),旨在推动视觉与语言理解的融合研究。DOTS-VLM1 采用主流的编码-融合-解码架构,支持图片与文本的联合理解与生成,适用于图文问答、图片描述、…

【Git】企业级使用

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 基本概念 Git 有三个核心区域&#xff0c;分别是工作区、暂存区和版本库&#xff0c;理解这三个区域是掌握 Git 的基础。​ ​ 工作区就是我们电脑里能看到的文件目录&…

Druid学习笔记 02、快速使用Druid的SqlParser解析

文章目录前言本章节源码描述认识作者官方文档快速入门demo案例引入依赖获取到SQL的AST(抽象语法树)使用visitor完成表、字段、表达式解析汇总总结一、简介1.1、和Antlr生成Parser的区别1.2、Druid SQL Parser的使用场景二、各种语法支持三、性能四、Druid SQL Parser的代码结构…

时间复杂度计算(以for循环为例)

本文理论内容来自严蔚敏版《数据结构(C语言版 第2版)》 *本文仅为复习时的总结&#xff0c;描述不准确、过程不严谨之处&#xff0c;还请理解 一、算法的相关概念 首先复习一下算法的定义及5个重要特性 其次是算法的评价标准 可以看到 时间复杂度 属于算法评价标准中的高效性…

图论(1):图数据结构

目录 一、图的定义 1.1 图的基本概念 1.2 图的分类 &#xff08;1&#xff09;按边的方向&#xff1a; &#xff08;2&#xff09;按边的权值&#xff1a; &#xff08;3&#xff09;按边的数量和类型&#xff1a; &#xff08;4&#xff09;按连通性&#xff1a; 1.3 图…

等保测评-Nginx中间件

Nginx *排查有无Nginx中间件&#xff0c;可使用以下命令&#xff1a; ps -ef | grep nginx、netstat -nutlp *确认Nginx中间件有运行&#xff0c;查看其目录&#xff1a; find / -name nginx.conf、ps -ef | grep Nginx *确认好目录后&#xff0c;查看版本&#xff1a; …