v-for 获取数组key value_Vue之路 | 05von、vif、vfor

b064c3ae7798800e7f75cfd38ee421e7.png点击左上方“熊吱”关注我们吧!

1

事件监听

    在开发中,需要监听用户发生的事件,如点击、拖拽、键盘操作等,在Vue中,使用v-on指令绑定事件监听器。

v-on的语法糖为:@

  • v-on基本操作

    在下面代码中,使用了v-on语法(使用的是语法糖@)绑定了一个点击事件,事件指向了一个methods中定义的函数:

    <div id="app">      <h1>{{message}}h1>      <h2>{{counter}}h2>    <button @click='inc'>+button>    <button @click='sub'>-button>    div>    <script>    const app = new Vue({      el:'#app',      data:{        message:'欢迎光临!请选择您要购买的数量',        counter:0      },      methods:{        inc(){          this.counter++        },        sub(){          this.counter--        }      }    })script>
  • v-on参数

    有下列三种情况:

情况1:方法不需要传参

情况2:若方法本省需要。一个参数,没有传入参数,只写了一个(),形参为Undifiened;如果省略了小括号,vue会将默认的浏览器产生的event事件对象作为参数传入到方法。

情况3:需要event对象同时也需要其他参数时,需要使用$event 手动获取浏览器参数的event对象。

代码示例如下:

    <div id="app">            <button @click='btn1click'>按钮1button>      <button @click='btn1click()'>按钮1button><br>            <button @click='btn2click(123)'>按钮2button>      <button @click='btn2click()'>按钮2button>      <button @click='btn2click'>按钮2button><br>            <button @click='btn3click(123,$event)'>按钮3button>    div>    <script>    const app = new Vue({      el:'#app',      data:{        message:'hello'      },      methods:{        btn1click(){          console.log('点击了按钮1')        },        btn2click(value){          console.log('点击了按钮2,参数为:'+ value)        },        btn3click(value,event){          console.log('点击了按钮3,参数为'+value)          console.log(event)        }      }    })script>

    依次点击按钮的效果输出:

f6d5a79c172e80cc5100f6f58faac62d.png

  • v-on修饰符

    某些情况下拿到event事件可以通过修饰符进行一些事件的处理,Vue中常用的一些修饰符如下:

(1).stop -调用event.stopPropagation()

    使用stop修饰符可以停止事件的冒泡,比如在下列代码中,没有使用stop修饰符时,点击按钮时会触发btnclick以及divclick,使用后,就只触发当前的btnclick:

    <div id="app">      <div @click='divclick'>        一个div        <button @click.stop='btnclick'>按钮1button>      div>    div>

(2).prevent -调用event.preventDefault()

    使用prevent修饰符可以阻止事件的默认行为,比如在一个表单的提交按钮上,可以通过添加prevent阻止默认的跳转动作:

      <form action="www.baidu.com">        <input type="submit" value="提交" @click.prevent='sbmclick'>      form>    div>

(3).{keyCode | keyAlias} -只当事件是从特定键触发时才触发回调

    比如通过如下方法,监听是否敲下回车键:

  <input @keyup.enter='onEnter'>

(4)除此之外还有一些修饰符:

.native -监听组件根元素的原生事件

.once -只触发一次回调

2

条件判断

  • v-if、v-else-if、e-else

    在vue中也支持使用v-if、v-else-if、v-else进行条件判断:

    <div id="app">    <h2 v-if='score>=90'>优秀h2>    <h2 v-else-if='score>=80'>良好h2>    <h2 v-else-if='score>=60'>及格h2>    <h2 v-else='score>0'>不及格h2>    div>

    一个登录切换框的实现:

    <div id="app">      <span v-if='isUser'>        <label for="username">{{message}}label>      <input type="text" id="username" placeholder="请输入用户账号" key='username'>      span>      <span v-else>        <label for='email'>{{email}}label>        <input type="text" id="email" placeholder="请输入用户邮箱" key='email'>      span>    <button @click='isUser = !isUser'>切换类型button>    div>    <script>    const app = new Vue({      el:'#app',      data:{        message:'用户账号',        email:'用户邮箱',        isUser:true      }    })script>

其中输入框中的key值是否相同决定是否复用组件。

  • v-show

两者的区别:

v-if:当条件为false时,dom中不会存在包含v-if指令的元素。

v-show:当条件为false时,v-show只是在元素中加了一个行内样式display:none

在开发中,切片很频繁时,使用v-show

代码示例:

    <div id="app">      <h2 v-if='isShow'>{{message}}h2>      <h2 v-show='isShow'>{{message}}h2>div>    <script>    const app = new Vue({      el:'#app',      data:{        message:'hello',        isShow:true      }    })script>

3

循环语句

    在实例中定义一个数组与一个对象:

    <script>    const app = new Vue({      el:'#app',      data:{        arr:['XuanYi','MeiQi','ChaoYue'],        obj:{          name: '熊吱',          age:20,          egname:'BearMouth'        }      }    })script>
  • 遍历数组

    可通过以下方法遍历数组:

      <ul>        <li v-for="itm in arr">{{itm}}li>      ul>      <ul>        <li v-for="(itm,index) in arr">{{itm}}--{{index}}li>      ul>

    输出效果:

8e14566dc20a73078aba1f51352a2be1.png

  • 遍历对象

    可通过以下方法遍历对象:

      <ul>        <li v-for='value in obj'>{{value}}li>      ul>      <ul>                <li v-for='(value,key) in obj'>{{value}}--{{key}}li>      ul>      <ul>                <li v-for='(value,key,index) in obj'>{{value}}--{{key}}--{{index}}li>      ul>

    输出效果:

8347ed68b0f15e7d2321586c55cf86ff.png

  • key绑定

    为了高效的更新虚拟DOM:

    官方推荐在使用v-for时给对应的元素或组件绑定一个唯一的:key属性

      <ul>        <li v-for="itm in arr" :key='itm'>{{itm}}li>      ul>

    这个和Vue的虚拟DOM的Diff算法有关,使用key给每个节点做一个唯一标识,Diff算法就可以正确识别此节点,就能找到正确的位置插入新的节点。

  • 响应式的数组方法

1. push() 在数组后添加元素2. pop() 删除数组最后一个元素3. shift() 在删除数组中的第一个元素4. unshift() 在数组最前面添加元素5. splice()   - 删除(开始元素,删除元素个数)  - 插入(开始元素,0,插入元素)  - 替换元素(开始元素,替换元素个数,替换元素)6. sort() 排序元素7. reverse() 反转元素

    

    以上列举了vue中响应式的数组方法(页面会直接改变),如果需要修改数组的元素,直接通过索引值修改是非响应式的,vue中也提供了一个set函数来修改数组元素:

Vue.set(要修改的对象,索引值,修改后的值)
e26733f76f41609ecf49458b02019257.pngENDVue之路系列文章:Vue之路 | 01-Vue安装与初体验Vue之路 | 02-VSCODE添加Vue模板Vue之路 | 03-插值操作与V-bindVue之路 | 04-计算属性computed3017603c2e11bdb8057f5dc58abaf632.png

微信:熊吱

扫码关注我们

互联网知识交流平台

56e58499a009ca6b43200bbc6ae4cfac.gif你的每个赞和在看,我都喜欢!3756a89d0352d39c2968dccc40cd2c63.gif

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

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

相关文章

c++输出txt格式循环一组数据后换行再循环一次_numpy、pandas以及用pandas做数据分析的案例...

本文也是秦路老师python教程的学习笔记。这篇也是发给超哥看的&#xff1a;很多人说python很简单很好学&#xff0c;也有很多人说python没有java和c的功能强大。但是这都不重要&#xff0c;重要的是我们想学了&#xff0c;想画图也好做数据分析也罢&#xff0c;想学了就直接开始…

gin context和官方context_Go语言gin框架从入门到精通(3)

gin的渲染1 各种数据格式的响应json、结构体、XML、YAML类似于java的properties、ProtoBuf分别对所有数据格式举个列子func main() {r : gin.Default() ​//1. json响应r.GET("/someJSON", func(c *gin.Context) {c.JSON(200,gin.H{"message":"someJS…

cas .net 重定向循环_接口测试平台接入企业cas(一)

cas系统简介提供运营系统的 SSO 和 access control功能。类似百度的UC。CAS 是 Yale 大学发起的一个开源项目&#xff0c;旨在为 Web 应用系统提供一种可靠的单点登录方法&#xff0c;CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。官方网站&#xff1a;https://www.apereo…

虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置

虚拟机安装rsync服务器配置 内容精选换一换在分布式HA部署场景下&#xff0c;ASCS主备节点通过共享盘实现数据同步。本章节指导用户将ASCS主节点的数据盘绑定给ASCS备节点并为ASCS主备节点绑定浮动IP。已在SAP ASCS主备节点之间进行过相互的SSH跳转操作。绑定共享盘创建浮动IP并…

程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧

前言.net 环境近些年也算是稳步发展。在开发的过程中&#xff0c;与数据库打交道是必不可少的。早期的开发者都是DbHelper一撸到底&#xff0c;到现在的各种各样的ORM框架大行其道。孰优孰劣谁也说不清楚&#xff0c;文无第一武无第二说的就是这个理。没有什么最好的&#xff0…

centos系统云服务器,Centos系统怎么进云服务器

Centos系统怎么进云服务器 内容精选换一换CentOS 7.5版本操作系统的弹性云服务器默认关闭SELinux功能。通过/etc/selinux/config开启SELinux功能后&#xff0c;在输入密码时&#xff0c;会出现无法登录的问题。如果业务需要开启SELinux 功能&#xff0c;请参照本节内容进行配置…

applicationproperties不是小叶子_为何“砂糖桔”是带着叶子出售?原来其中有着“猫腻”,涨知识了...

大家好&#xff0c;我是你们的好朋友童童&#xff0c;生活中不止有眼前的苟且&#xff0c;还有诗和梦想。童童每天都给大家分享有趣实用的小知识&#xff0c;有什么意见或者建议都可以和童童交流&#xff0c;喜欢我们的可以关注呦。一起和童童来看看今天的小知识吧。随着春节的…

用android制作一个记事本app_用扁平化呈现一个天气APP

作为当下最火的设计风格之一&#xff0c;扁平化设计其实是一种简约的Ul 设计理念&#xff0c;现被广泛应用于图形用户界面上&#xff0c;在图形材料&#xff0c;例如海报&#xff0c;艺术作品&#xff0c;指导文档&#xff0c;各类出版物等方面尤为常用。今天为大家带来了我最近…

hbase hdfs外部表_硬核干货长文!Hbase来了解一下不?

本文公众号来源&#xff1a;互联网侦察 作者&#xff1a;channingbreeze最近我也在入门大数据相关的基础&#xff0c;这篇文章非常通俗易懂讲解了什么是Hbase&#xff0c;推荐阅读&#xff01;等我学所成&#xff0c;我也来写写大数据相关的入门知识。今天&#xff0c;小史的…

springboot自动配置的原理_SpringBoot实战:详解SpringBoot自动配置原理

SpringBoot 自动配置主要通过 EnableAutoConfiguration, Conditional, EnableConfigurationProperties 或者 ConfigurationProperties 等几个注解来进行自动配置完成的。EnableAutoConfiguration 开启自动配置&#xff0c;主要作用就是调用 Spring-Core 包里的 loadFactoryName…

PYTHON之路(八)

http://www.cnblogs.com/alex3714/articles/5227251.htmlSocket语法及相关socket概念A network socket is an endpoint of a connection across a computer network. Today, most communication between computers is based on the Internet Protocol; therefore most network …

kafka消息消费有延迟_RabbitMQ与Kafka的技术差异以及使用注意点

导言作为一个有丰富经验的微服务系统架构师&#xff0c;经常有人问我&#xff0c;“应该选择RabbitMQ还是Kafka&#xff1f;”。基于某些原因&#xff0c; 许多开发者会把这两种技术当做等价的来看待。的确&#xff0c;在一些案例场景下选择RabbitMQ还是Kafka没什么差别&#x…

android 通知_Android 全局消息通知框架实现(类似EventBus)

Github项目地址 https://github.com/532268948/MessageDemo一、介绍随着页面的增多&#xff0c;页面之间的信息交流也会越来越多&#xff0c;比如一个社交类app,你在个人中心修改了自己的个人信息&#xff0c;在动态展示页面你就要通知该页面有关于自己的动态需要更新自己展示在…

2019运管取消了滴滴还查吗_劳务资质2019年取消吗?劳务资质新标准你真的了解吗?...

施工劳务资质2019新标准&#xff01;劳务资质已经取消&#xff1f;不可能&#xff01;虽然这样对于很多企业来说应该比较省事&#xff0c;劳务资质也是越来越受欢迎的&#xff0c;但是企业在办理资质之前一定要将资质标准了解清楚了&#xff0c;新版施工劳务资质仅仅是将专业进…

FFmpeg获取DirectShow设备数据(摄像头,录屏)

这两天研究了FFmpeg获取DirectShow设备数据的方法&#xff0c;在此简单记录一下以作备忘。本文所述的方法主要是对应Windows平台的。 1. 列设备 ffmpeg -list_devices true -f dshow -i dummy命令执行后输出的结果如下&#xff08;注&#xff1a;中文的设备会出现乱码的情…

矩阵的对数运算公式_必修一——对数与对数运算

一、前言(废话)高中数学我们已经学习了二次函数&#xff0c;指数函数(如果不记得的读者可以往前面翻看一下)&#xff0c;这次作者为读者们讲解的是对数与对数运算&#xff0c;对数是什么呢&#xff1f;读者们心里有自己的认知吗&#xff1f;二、对数对数函数是高中阶段学习的一…

分拣外观残缺的机器人_复合机器人AGV+协作机器人的应用领域

什么是复合机器人?复合型机器人是一种集成AGV移动机器人和通用工业机器人两项功能为一身的机器人。在工业领域&#xff0c;通用工业机器人被称为机械臂或者机械手&#xff0c;主要是替代人胳膊的抓取功能;而AGV移动机器人是替代人腿脚的行走功能。复合型机器人则是手脚并用&am…

前端之旅,做一点有回报的事情

本文是参加前端早读课【同说】做的分享 首先感谢情封对前端圈的辛苦付出&#xff0c;能坚持做好一件事真的很不容易&#xff0c;敬佩这份精神。2天前看到早读课的【同说】活动计划&#xff0c;我觉得想法真的很好&#xff0c;忽然情封微信邀请我参与&#xff0c;听到后我是心虚…

差异表达基因变化倍数_10.limma教程|差异表达统计相关理论

点击上方“蓝字”关注我们10.1 Top-Tables 简介limma包提供topTable和decideTests函数概括线性模型结果&#xff0c;进行假设检验&#xff0c;调整p值进行多重检验。结果包括(log2)倍数变化&#xff0c;标准误差&#xff0c;t统计和p值。用于显著性分析的基本统计量是修正t统计…

activemq中怎么知道推送消息是否成功_如何优雅的使用activeMQ 安装、应用、安全认证、持久化...

ActiveMQ安装1. 下载资源ActiveMQ官网&#xff1a;版本说明ActiveMQ5.10.x以上版本必须使用JDK1.8才能正常使用。ActiveMQ5.9.x及以下版本使用JDK1.7即可正常使用。上传至Linux服务器解压安装文件tar -zxf apache-activemq-5.9.0-bin.tar.gz检查权限ls -al apache-activemq-5.9…