Vue快速入门以及基础标签使用

目录

    • 开始示例
      • el挂载点
      • data数据对象
    • vue基本标签
      • v-text
      • v-html
      • v-on
      • 计数器示例实现
      • v-show
      • v-if
      • v-bind
      • 图片切换示例
      • v-for
      • v-on补充
      • v-model
    • axios网络请求
      • axios基本使用
      • vue中使用axios

开始示例

1.首先在html页面中引入vue的生产环境,在body标签中粘上下面代码

 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

在这里插入图片描述


2.来搞一个入门实例,具体如下。

在这里插入图片描述


el挂载点

大括号包含的部分会被data中同名的数据给替换
在这里插入图片描述

也可以使用class选择器,不过建议使用id选择器,因为id在实际开发中是唯一的
在这里插入图片描述

Vue会管理el选项命中的元素及其内部的后代元素

其实不用div标签可以匹配外,用p标签也可以使用的。前提是 id 和 el 匹配的上。但是只能支持双标签,比如p, h1, head等(不支持html和body标签)。


data数据对象

在这里插入图片描述

data中写对象如下:
在这里插入图片描述
在这里插入图片描述
展示对象类型的数据,可以直接用定义的对象名.属性的方式。
比如
{{ student.name }} {{ student.age }}
这样就可以直接调用对象的属性并展示了。

对于data中声明的数组,使用方式如下所示:

在这里插入图片描述

使用方式:
{{ 数组名[0] }} 这是直接展示数组中的第一个元素。


vue基本标签

v-text

设置标签的文本值(textContent)

<h2 v-text="message">hello, world!</h2>

它会把好h2中的内容给替成text的message的内容
示例如下:
在这里插入图片描述

也可以使用插值表达式的方式,来实现拼接字符串。

在这里插入图片描述

结果如下

在这里插入图片描述


也可以使用下面这种方式来进行插值表达式

<body><div id="app"><h2 v-text="'hello ' + message"></h2><h2>{{"hello " + message}}</h2></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{message:"Chain"}})</script>

在这里插入图片描述
结果如下所示
在这里插入图片描述


  • v-text指令的作用是:设置标签的内容(textContent)
  • 默认写法会替换全部内容,使用差值表达式{份}可以替换指定内容

v-html

主要作用是把标签中的html代码给渲染出来,而不是纯文本

<body><div id="app"><p v-html="content"></p></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{      content:"<a href='https://www.baidu.com/'>屌毛是你</a>"}})</script>
</body>

结果如下:渲染成链接,可以点击跳转了

在这里插入图片描述

v-html指令的作用是:设置元素的innerHTML内容中有html结构会被解析为标签
v-text指令无论内容是什么,只会解析为文本


v-on

为元素绑定事件
在这里插入图片描述

示例代码如下所示:

<body><div id="app"><input type="button" value="单击事件" v-on:click="doIt"><input type="button" value="单击事件" @click="doIt"></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",methods:{doIt:function(){alert("are you 叼毛");}}})</script>
</body>

演示结果如下:
在这里插入图片描述
但是一般使用不会这么简单,而是配合各种函数和各种关键字,如下

<body><div id="app"><input type="button" value="单击事件" v-on:click="doIt"><input type="button" value="单击事件" @click="doIt"><input type="button" value="双击事件" @dblclick="doIt"><h2 @click="changeFood">{{ food }}</h2></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{message:"Chain",content:"<a href='https://www.baidu.com/'>屌毛是你</a>",food:"石头拌稀饭"},methods:{doIt:function(){alert("are you 叼毛");},changeFood:function(){this.food += "炒鸡好吃!"}}})</script>
</body>

在这里插入图片描述
在这里插入图片描述


  • v-on指令的作用是:为元素绑定事件
  • 事件名不需要写on
  • 指令可以简写为@
  • 绑定的方法定义在methods属性中

计数器示例实现

大概实现一个这种效果

在这里插入图片描述
实现步骤逻辑:

1.data中定义数据:比如num
2.methods中添加两个方法:比如add(递增),sub(递减)
3.使用v-text将num设置给span标签
4.使用v-on将add,sub分别绑定给+,-按钮
5.累加的逻辑:小于10累加,否则提示
6.递减的逻辑:大于0递减,否则提示

<body><div id="app"><button @click="sub">-</button><span>{{ num }}</span><button @click="add">+</button></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{num:1},methods:{add:function(){if(this.num < 10){this.num++;}else{alert("最大为10,叼毛别点了");}                    },sub:function(){if(this.num > 0){this.num--;}else{alert("不能为负");}}}})</script>
</body>

结果如下:

在这里插入图片描述


注意事项如下所示

  • 创建Vue示例时:el(挂载点),data(数据),methods(方法)
  • v-on指令的作用是绑定事件,简写为@
  • 方法中通过this,关键字获取data中的数据
  • v-text指令的作用是:设置元素的文本值,简写为{{}}

v-show

在这里插入图片描述

实现代码如下:(懂得都懂啊,可以根据年龄来显示或隐藏某些东西)

<body><div id="app"><input type="button" value="切换限制级别" @click="man"><input type="button" value="切换青少年级别" @click="boy"><img v-show="age >= 18" src="https://img1.mydrivers.com/img/20230305/e103b86e-b368-45bb-93aa-8e4d51964fe2.png"></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{age:16},methods:{man:function(){this.age = 18;},boy:function(){this.age = 16;}}})</script>
</body>

效果如下图

在这里插入图片描述

回归正题,它这个v-show标签本质上还是切换了style的display属性,给切换成none了


注意事项

  • v-show指令的作用是:根据真假切换元素的显示状态
  • 原理是修改元素的display,实现显示隐藏
  • 指令后面的内容,最终都会解析为布尔值
  • 值为true元素显示,值为false元素隐藏
  • 数据改变之后,对应元素的显示状态会同步更新

v-if

v-if和v-show其实差不多,都是来控制元素显示或隐藏的。语法如下所示

在这里插入图片描述

演示代码

<body><div id="app"><p v-if="isShow">叼毛</p><input type="button" value="切换显示" @click="change"></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{isShow:false},methods:{change:function(){this.isShow = !this.isShow;}}})</script>
</body>

演示结果
在这里插入图片描述

v-show和v-if二者的区别在于,切换时,v-if在修饰不显示时,会直接将标签移除,而v-show只是改变了style标签的状态。
下图可以清楚的看出切换时两种标签修饰的变化
在这里插入图片描述


频繁切换的元素用v-show,因为v-if会修改dom树,而v-show只是操作样式,所以v-show性能更好,但是v-show的隐藏元素还是会展示,会有不安全的问题。

  • v-if指令的作用是:根据表达式的真假切换元素的显示状态
  • 本质是通过操纵dom元素来切换显示状态
  • 表达式的值为true,元素存在于dom树中,为false,从dom树中移除
  • 频繁的切换v-show,反之使用v-if,前者的切换消耗小

v-bind

语法:v-bind:属性名=表达式

在这里插入图片描述

这个v-bind也是可以省略的。如下所示,两种方式都是可以的

<body><div id="app"><img v-bind:src="imgSrc" alt=""><img :src="imgSrc" alt="" :title="imgtitle+'!!!'">      </div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{imgSrc:"https://img0.baidu.com/it/u=340747937,2651100772&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=889",imgtitle:"可可奈奈"}})</script>
</body>

在这里插入图片描述

这个title标签是鼠标悬停是显示文本的,设置后第二张图悬停会显示title文本,第一张没显示。由上面那段代码也可以看出来,这个title也是可以字符串拼接的。
:title="imgtitle+'!!!'"


<img :src="imgSrc" alt="" :title="imgtitle+'!!!'" :class="{active:isActive}" @click="toggleActive">
这个标签的class,也就是active是否生效取决于isActive是true还是false

在这里插入图片描述


图片切换示例

这个示例把前面学的都综合了起来,是一个不错的demo,实现效果,点击左边箭头,切换到前一张图;点击右边箭头,切换到后一张图,在第一张图上隐藏左箭头,在最后一张图上隐藏右箭头。
在这里插入图片描述

它的实现步骤如下

在这里插入图片描述

解释:写JavaScript:void(任意数字)可以让超链接不跳转

<body><div id="mask"><div class="center"><h2 class="title"><img src="./images/logo.png" alt=""></h2><!-- 图片 --><img :src="imgArr[index]" alt="" /><!-- 左箭头 --><a href="javascript:void(0)" v-show="index!=0" @click="prev" class="left"><img src="./images/prev.png" alt="" /></a><!-- 右箭头 --><a href="javascript:void(0)" v-show="index<imgArr.length-1" @click="next" class="right"><img src="./images/next.png" alt="" /></a></div></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el: "#mask",data: {imgArr: [/* 添加图片路径 */"./images/00.jpg","./images/01.jpg","./images/02.jpg","./images/03.jpg","./images/04.jpg","./images/05.jpg","./images/06.jpg","./images/07.jpg","./images/08.jpg","./images/09.jpg","./images/10.jpg",],/* 数组索引 */index: 0},methods: {prev:function(){this.index--;},next:function(){this.index++;}},})</script>
</body>

v-for

用于遍历数组的,来自动生成列表结构,可以理解为复制粘贴,自动遍历数组,并把元素数据依次绑定展示

如下图分析

在这里插入图片描述

注:上面的 :title是使用的v-bind,给它设置一个tiele属性,只不过可以省略成:title;然后{{index}}就是取数组下标的意思

实际使用示例:
先上代码

<body><div id="app"><ul><li v-for="item in arr">人称:{{item}}</li></ul><h2 v-for="i in food">{{i.name}}</h2></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{arr:["你","我","他"],food:[{name:"石头拌稀饭"},{name:"黄沙炒米饭"}]}})</script>
</body>

演示结果如下图:
在这里插入图片描述

其实通过上面那个示例,应该会明白,v-for的使用了,也就是遍历数据元素,以同一种格式呈现出来

我们在对其加上两个点击方法,使用v-on指令来绑定
在这里插入图片描述
效果如下图:
在这里插入图片描述

原理很简单:加菜方法就是向数组中新增加元素,然后由于v-for标签,都给遍历出来了
而减餐方法同理,使用shift方法,每次移除数组最左侧元素,就无法遍历到该元素,自然就不显示了

v-for可以十分方便的帮助我们生成一个列表。

在这里插入图片描述


v-on补充

传递自定义参数,事件修饰符

使用示例:

在这里插入图片描述

验证结果如下:

在这里插入图片描述


另一个示例,根据键盘的回车键来触发弹窗
在这里插入图片描述

在这里插入图片描述


v-model

获取和设置表单元素的值(双向数据绑定)

在这里插入图片描述

演示示例

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


axios网络请求

axios基本使用

使用axios时需要联网并且引入官网提供的 axios 在线地址
请求库的基本语法,它其实是对Ajax的一个封装

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

分为两个,响应成功执行的回调函数和响应失败执行的回调函数,具体如下图

在这里插入图片描述

post请求中,第一个参数是url的地址,第二个参数是post的数据

下面以这两个接口文档来做示范
在这里插入图片描述

示例代码(没用vue,用的原生的js)

<body><input type="button" value="get请求" class="get"><input type="button" value="post请求" class="post"><!-- 官网提供的 axios 在线地址 --><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script>/*接口1:随机笑话请求地址:https://autumnfish.cn/api/joke/list请求方法:get请求参数:num(笑话条数,数字)响应内容:随机笑话*/document.querySelector(".get").onclick = function () {axios.get("https://autumnfish.cn/api/joke/list?num=6")// axios.get("https://autumnfish.cn/api/joke/list1234?num=6").then(function (response) {console.log(response);},function(err){console.log(err);})}/*接口2:用户注册请求地址:https://autumnfish.cn/api/user/reg请求方法:post请求参数:username(用户名,字符串)响应内容:注册成功或失败*/document.querySelector(".post").onclick = function () {axios.post("https://autumnfish.cn/api/user/reg",{username:"盐焗西兰花"}).then(function(response){console.log(response);console.log(this.skill);},function (err) {console.log(err);})}</script>
</body>

vue中使用axios

网络数据的核心就是data中一部分数据是通过网络获取到的,所以是在方法中发送网络请求,在响应成功后,把服务器返回的数据绑定给对应的data值就行了

踩坑,ajax是异步的,this在ajax函数内指向并不是vue实例了,不能通过this拿到vue中的实例,所以不会在在axios函数中使用this

this是会变的,所以解决方法就是把它先存起来,定义一个that,var that = this;

<body><div id="app"><input type="button" value="获取笑话" @></div><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var app = new Vue({el:"#app",data:{joke:"很好笑的笑话"},methods:{getJoke:function(){var that = this;axios.get("https://autumnfish.cn/api/joke").then(function(response){console.log(response.data);that.joke = response.data;},function(err){ })}}})</script>
</body>

在这里插入图片描述

在这里插入图片描述


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

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

相关文章

微客云直充卡券优惠话费充值接口开发稳定高效

微客云直充卡券话费 开发团队致力于此模块生命力至少3-5年 此模块以资源种类&#xff0c;官方直联接口为优势&#xff0c;不纯以软件更新为主&#xff0c;力争版本精准化服务用户 单独直充卡券话费系统&#xff0c;直接完成对各种消费场景的流量变现&#xff0c;更加开放与链路…

TCP--半连接队列和全连接队列

原文地址&#xff1a;https://plantegg.github.io/2020/04/07/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82TCP–%E5%8D%8A%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97%E5%92%8C%E5%85%A8%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97–%E9%98%BF%E9%87%8C%E6%8A%80%E6%9C%AF%E5%85%AC%E…

arm:day6

实现UART通信&#xff1a; 1.键盘输入一个字符a,串口工具显示b 2.键盘输入一个字符串"nihao",串口工具显示"nihao" uart.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_uart.h" #include "stm32mp1xx_gpio.h" #in…

4.物联网LWIP之C/S编程,stm32作为服务器,stm32作为客户端,代码的优化

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置&#xff08;FREERTOS配置&#xff0c;ETH配置&#xff0c;LWIP配置&#xff09; 1.FREERTOS配置 为什么要修改定时源为Tim1&#xff1f;不用systick&#xff1f; 原因&#xff1a;HAL库与FREERTOS都需要使用systi…

Flink、Yarn架构,以Flink on Yarn部署原理详解

Flink、Yarn架构&#xff0c;以Flink on Yarn部署原理详解 Flink 架构概览 Apache Flink是一个开源的分布式流处理框架&#xff0c;它可以处理实时数据流和批处理数据。Flink的架构原理是其实现的基础&#xff0c;架构原理可以分为以下四个部分&#xff1a;JobManager、TaskM…

arm安装docker与docker-copose

一、银河麒麟Arm64安装docker 1、docker 安装包地址&#xff1a; https://download.docker.com/linux/static/stable 2、解压&#xff0c;然后将docker目录下文件拷贝到/usr/bin里 tar -xf docker-18.09.3.tgz mv docker/* /usr/bin/ 3、准备 docker.service系统配置文件 &…

[蓝帽杯 2022 初赛]domainhacker

打开流量包&#xff0c;追踪TCP流&#xff0c;看到一串url编码 放到瑞士军刀里面解密 最下面这一串会觉得像base64编码 删掉前面两个字符就可以base64解码 依次类推&#xff0c;提取到第13个流&#xff0c;得到一串编码其中里面有密码 导出http对象 发现最后有个1.rar文件 不出…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效…

【已解决】记 Vue3+SpringBoot 前后端分离项目部署时的一次跨域问题

问题背景是在一次部署开发环境时&#xff0c;由于是前后端分离项目&#xff08;前端Vue3&#xff0c;后端SpringBoot&#xff09;&#xff0c;SpringBoot 使用 Docker 部署&#xff0c;前端访问服务接口时出现跨域问题。 不知道什么是跨域问题的小伙伴可以查看另一篇文章&…

二叉树中的最大路径和-递归

路径 被定义为一条从树中任意节点出发&#xff0c;沿父节点-子节点连接&#xff0c;达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root…

Spring 与【MyBatis 】和【 pageHelper分页插件 】整合

目录 一、Spring整合MyBatis 1. 导入pom依赖 2. 利用mybatis逆向工程生成模型层层代码 3. 编写配置文件 4. 注解式开发 5. 编写Junit测试类 二、AOP整合pageHelper分页插件 1. 创建一个AOP切面 2. Around("execution(* *..*xxx.*xxx(..))") 表达式解析 3. 编…

智慧互联,有序充电--多场景充电

企业微电网能效及充电管理解决方案 安科瑞 崔丽洁 1、企业需求&#xff08;目的地充电&#xff09; 站在企业的角度&#xff0c;除了要主动承担碳达峰、碳中和的社会责任&#xff0c;也需要考虑自身的经营和利润&#xff0c;需要结合企业的现状进行改造 企业微电网平台——与…

【QT5-自我学习-线程qThread练习-两种使用方式-1:通过继承线程类来使用-基础样例】

【QT5-自我学习-线程qThread练习-两种使用方式-1&#xff1a;通过继承线程类来使用-基础样例】 1、前言2、实验环境3-1、学习链接-参考文章3-2、先前了解-自我总结&#xff08;1&#xff09;线程处理逻辑事件&#xff0c;不能带有主窗口的事件&#xff08;2&#xff09;一般考虑…

【LeetCode75】第三十五题 统计二叉树中好节点的数目

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一棵二叉树&#xff0c;让我们统计这棵二叉树中好节点的数目。 那么什么是好节点&#xff0c;题目中给出定义&#xff0c;从根节点…

华为OD机试之报文重排序【Java源码】

题目描述 对报文进行重传和重排序是常用的可靠性机制&#xff0c;重传缓中区内有一定数量的子报文&#xff0c;每个子报文在原始报文中的顺序已知&#xff0c;现在需要恢复出原始报文。 输入描述 输入第一行为N&#xff0c;表示子报文的个数&#xff0c;0 &#xff1c;N ≤ …

UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.5->2.3

目录 之前的文章&#xff1a; 1.5 Blend Attributes by Value 发射器更新 粒子生成 粒子更新 2.1 Static Beams ​编辑 发射器更新&#xff1a; 粒子生成 粒子更新 2.2 Dynamic Beams 没有开始模拟前的效果是&#xff1a; 开始模拟后的效果是&#xff1a; 发射器更新 …

【C++入门到精通】C++入门 —— 继承(基类、派生类和多态性)

阅读导航 前言一、继承的概念及定义1. 继承的概念2.继承的定义⭕定义格式⭕继承关系和访问限定符⭕继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承及菱形虚拟继承⭕单…

C# OpenCvSharp DNN 二维码增强 超分辨率

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Dnn; using OpenCvSh…

如何将储存在Mac或PC端的PDF文件传输到移动设备呢?

iMazing是一款iOS设备管理软件&#xff0c;用户借助它可以将iPad或iPhone上的文件备份到PC或Mac上&#xff0c;还能实现不同设备之间的文件传输&#xff0c;能很大程度上方便用户进行文件管理。 在阅读方面&#xff0c;iPad和iPhone是阅读PDF的优秀选择&#xff0c;相较于Mac或…

Java 基于 SpringBoot+Vue 的在线考试系统的研究与实现,2.0 版本

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数…