vue3(二)-基础入门之列表循环、数组变动检测、filter模糊查询、事件修饰符

news2024/9/29 20:12:40

一、列表循环

of 和 in 都是一样的效果

html代码:

<div id="app">
      <ul>
        <li v-for="item of datalist">{{ item }}</li>
      </ul>

      <ul>
        <li v-for="item in dataobj">{{ item }}</li>
      </ul>
		<!-- 括号内的 index,item ,位于第一项的是数组的值,第二项的是数组的索引-->
      <ul>
        <li v-for="(index,item) of datalist">{{ item }}----{{ index }}</li>
      </ul>
		<!-- 括号内的 item,key ,位于第一项的是对象的值,第二项的是对象的键-->
      <ul>
        <li v-for="(item,key) in dataobj">{{ item }}----{{ key }}</li>
      </ul>
</div>

javascript:

<script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            datalist: ['111', '222', '333'],
            dataobj: {
              a: '1',
              b: '2',
              c: '3'
            }
          }
        }
      }).mount('#app')
</script>

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

二、列表key值设置

  1. 跟踪每个节点的身份,从而重用和重新排序现有的元素

  2. 理想的key值是每项都有唯一的id

<ul>
   <li v-for="item in dataobj" key="item.id">{{ item }}</li>
</ul>

三、列表数组检测

  1. vue中可以检测数组变动的函数,数组变动界面中的数据发生改变

1、push()、pop()、shift()、unshift()、splice()、sort()、reverse()
2、根据索引对数组进行重新赋值

  1. vue中调用以下函数,返回一个新数组,原数组没变,界面的数据不会发生改变

filter()、concat()、slice()、map()

四、filter应用-模糊查询

html:

<input type="text" @input="onchange()" v-model="inputText" />
<ul>
   <li v-for="item in datalist">{{ item }}</li>
</ul>

javascript:

<script>
      const { createApp, ref } = Vue
      const vm = createApp({
        data() {
          return {
            datalist: ['1aa11', '22dd2', '33gg3', 'qqa11', '2rrd2', 'dgklg3'],
            datalist1: ['1aa11', '22dd2', '33gg3', 'qqa11', '2rrd2', 'dgklg3'],
            inputText: ''
          }
        },
        methods: {
          onchange() {
            this.datalist = this.datalist1.filter(item => {
              return item.indexOf(this.inputText) > -1
            })
          }
        }
      }).mount('#app')
</script>

五、事件修饰符

1.stop 与 self 修饰符

当子节点触发事件后,若父节点有触发事件,父节点也会跟着触发

1.1.没有添加事件修饰符

html:

<ul @click="clickUlHandler()">
   <li @click="clickLiHandler()">1111</li>
</ul>

javascript:

<script>
      const { createApp, ref } = Vue
      const vm = createApp({
        methods: {
          clickUlHandler() {
            console.log('ul触发了')
          },
          clickLiHandler() {
            console.log('li触发了')
          }
        }
      }).mount('#app')
</script>

点击 < li >标签,< ul > 标签的事件也触发了
在这里插入图片描述
1.2.添加事件修饰符 stop:
stop 只能添加在 < li >
html:

<ul @click="clickUlHandler()">
   <li @click.stop="clickLiHandler()">1111</li>
</ul>

只触发了 < li > 的事件
在这里插入图片描述
1.3.添加事件修饰符 self:
self 只能添加在 < ul >

<ul @click.self="clickUlHandler()">
   <li @click="clickLiHandler()">1111</li>
</ul>

只触发了 < li > 的事件
在这里插入图片描述

还可以通过 e.stopPropagation() 解决以上问题

clickLiHandler(e) {
  e.stopPropagation()
  console.log('li触发了')
} 

2.prevent

点击链接后页面会跳转,通过 prevent 阻止页面跳转

html:

<a href="www.baidu.com" @click.prevent="clickChangePage($event)">
   	跳转页面
</a>

javascript:

<script>
      const { createApp, ref } = Vue
      const vm = createApp({
        methods: {
          clickChangePage(e) {
            // e.preventDefault()  也可以通过调用该方法阻止页面跳转
            console.log('页面跳转了')
          }
        }
      }).mount('#app')
    </script>

3.once

被该修饰符修饰的事件只触发一次

html:

<ul @click="clickUlHandler()">
   <li @click.once="clickLiHandler()">1111</li>
</ul>

javascript:

<script>
      const { createApp, ref } = Vue
      const vm = createApp({
        methods: {
          clickUlHandler() {
            console.log('ul触发了')
          },
          clickLiHandler() {
            console.log('li触发了')
          }
        }
      }).mount('#app')
</script>

< li > 只触发一次,而 < ul > 可以触发多次

在这里插入图片描述

六、按键修饰符

1.enter

html:

<input type="text" @keyup.enter="keyupHandle($event)" v-model="inputText"/>
<!-- 通过 @keyup.键值 效果一样-->
<!-- <input type="text" @keyup.13="keyupHandle($event)" v-model="inputText" /> -->

javascript:

<script>
      const { createApp, ref } = Vue
      const vm = createApp({
        methods: {
          keyupHandle(e) {
          	// 通过判断键值效果一样
            // if (e.keyCode === 13) {
            //   console.log(this.inputText)
            // }
            console.log(this.inputText)
          }
      }).mount('#app')
</script>

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

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

相关文章

k8s安装步骤

环境&#xff1a; 操作系统&#xff1a;win10 虚拟机&#xff1a;VMware linux发行版&#xff1a;CentOS7.9 CentOS镜像&#xff1a;CentOS-7-x86_64-DVD-2009 master和node节点通信的ip(master)&#xff1a; 192.168.29.164 0.检查配置 本次搭建的集群共三个节点&#xff0c;…

【开发实践】使用POI实现导出带有复杂表头的的excel文件

一、需求分析 公司业务部门需要&#xff0c;根据一些数据&#xff0c;加上表头&#xff0c;导出需要的excel表格。效果如下&#xff1a; 二、代码实现 【依赖准备】 <!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactId>po…

Echarts地图registerMap使用的GeoJson数据获取

https://datav.aliyun.com/portal/school/atlas/area_selector 可以选择省&#xff0c;市&#xff0c;区。 也可以直接在地图上点击对应区域。 我的应用场景 我这里用到这个还是一个特别老的大屏项目&#xff0c;用的jq写的。显示中国地图边界区域 我们在上面的这个地区选择…

C++学习之路(九)C++ 用Qt5实现一个工具箱(增加一个JSON数据格式化功能)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《粘贴板记录管理》功能&#xff0c;用着还不错哈。为了继续丰富我们的工具箱&#xff0c;今天我们就再增加一个平时经常用到的功能吧&#xff0c;就是「 JSON数据格式化 」功能。下面我们就来看看如何来规划开发一个这…

【MATLAB源码-第91期】基于matlab的4QAM和4FSK在瑞利(rayleigh)信道下误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 正交幅度调制&#xff08;QAM&#xff0c;Quadrature Amplitude Modulation&#xff09;是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度&#xff08;π/2&#xff09;的正弦波&#xff0c;因此…

解决在SwingBench压测时出现一些问题

解决在SwingBench压测时出现一些问题 压测时断层 1.问题来由&#xff1a;在进行swingbench压测的时候会出现断断续续的情况 2.导致原因&#xff1a; 我们通过查看日志文件&#xff0c;看看是什么情况 tail -100 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.l…

锂电行业废水及母液除铊解决方案,除铊树脂技术

锂电池原材料和生产设备的制造、电池回收和处理等&#xff0c;产业的发展会带来铊排放问题。除了锂电池生产过 程中存在的铊污染外&#xff0c;企业的生活污水或者初期雨水也含有铊&#xff0c;因为铊是一种广泛存在于自然环境中的 元素&#xff0c;存在于饮用水、土壤和食物中…

【三维重建】摄像机标定(张正友相机标定法)

摄像机标定的目的是为了求解摄像机的内、外参数 求解投影矩阵M 通过建立特殊的场景&#xff0c;我们能过得到多对世界坐标和对应图像坐标 根据摄像机几何可知 &#xff1a; &#xff0c;M是一个3*4的矩阵&#xff0c;令 通过一对点可以得到两个方程组&#xff0c;M中一共有11个…

Linux安全之auditd审计工具使用说明

一、auditd工具简介 audited是Linux审核系统的用户空间组件。它负责将审核记录写入磁盘。查看日志是通过ausearch或aureport实用程序完成的。审核系统或加载规则的配置是使用auditctl实用程序完成的。在启动过程中&#xff0c;/etc/audit/audit.rules中的规则由auditctl读取并加…

全新爱蜗影视优码双端影视源码v9.1/影视视频APP源码+支持代理/在线支付+支持对应苹果CMS

源码简介&#xff1a; 这个是最新爱蜗影视优码双端影视源码&#xff0c;作为实用方便的影视视频APP源码&#xff0c;它不仅支持代理/在线支付&#xff0c;而且也支持对应苹果CMS。 爱蜗影视优码双端影视支持对应苹果CMS支持代理在线支付 带图文教程&#xff0c;全新美化多功能…

深入理解OS--数值编码

信息的表示和处理 寻址和字节顺序 位于0x100处&#xff0c;int类型值0x01234567在大端和小端下的存储。 字符串的存储不受字节序影响。 移位 1.对左移&#xff0c;右边统一补0 2.对右移&#xff0c;分为算术右移&#xff0c;逻辑右移 算术右移下&#xff0c;左边补原最高有效…

jsoup登录日志平台后调企业微信机器人自动发送错误日志告警

一、需求&#xff1a;错误日志Top10告警发送 二、需求分解 jsoup实现登录&#xff0c;获取到cookie和token等用户鉴权信息获取接口相应的key值调用日志平台错误日志Top榜接口&#xff0c;查询到结果集调用企业微信机器人发送消息接口加上定时任务&#xff0c;可以实现定时发送…

【Unity3D】MAX聚合广告SDK——Pangle广告接入失败总结

Pangle, App Monetization Simplified 注册 登录 创建应用 创建广告单元 将其应用ID和广告ID关联到MAX广告。 下载Pangle Unity Plugin包&#xff0c;新建一个空工程&#xff08;很重要&#xff09; Unity版本2019.4.0f1 gradle plugin 4.2.0 gradle版本6.7.1 build_tools 34.…

SpringBoot : ch08 自动配置原理

前言 在现代的Java开发中&#xff0c;Spring Boot已经成为了一个备受欢迎的框架。它以其简化开发流程、提高效率和强大的功能而闻名&#xff0c;使得开发人员能够更加专注于业务逻辑的实现而不必过多地关注配置问题。 然而&#xff0c;你是否曾经好奇过Spring Boot是如何做到…

7000字+24张图带你彻底弄懂线程池

大家好&#xff0c;我是三友。今天跟大家聊一聊无论是在工作中常用还是在面试中常问的线程池&#xff0c;通过画图的方式来彻底弄懂线程池的工作原理&#xff0c;以及在实际项目中该如何自定义适合业务的线程池。 一、什么是线程池 线程池其实是一种池化的技术的实现&#xff0…

控制台gbk乱码

引用IntelliJ IDEA中 统一设置编码为utf-8或GBK-CSDN博客 特别注意file coding 的文件path和java的编码格式 配置

9.增删改操作

目录 一、插入操作 1、为表的所有字段插入数据 2、为表的指定字段插入数据 3、同时插入多条记录 4、将查询结果插入表中&#xff1a; 二、更新操作 三、删除操作 四、练习题 一、插入操作 在使用数据库之前&#xff0c;数据库中必须要有数据&#xff0c;MYSQL中使INSE…

ESP32-Web-Server编程-HTML 基础

ESP32-Web-Server编程-HTML 基础 概述 HTML(HyperText Markup Language) 是用来描述网页的一种语言。其相关内容存储在前端代码的 .html 文件中。 当浏览器向 web 服务器请求网页时&#xff0c;一个 HTML 文件被发送给浏览器&#xff0c;浏览器解释该文件的内容&#xff0c;…