vue3 ——笔记 (条件渲染,列表渲染,事件处理)

条件渲染

v-if

 v-if 指令用于条件性地渲染一块内容,只有v-if的表达式返回值为真才会渲染

v-else

 v-else 为 v-if 添加一个 'else' 区块     v-else 必须在v-if或v-else-if后

v-else-if

 v-else-if 是v-if 的区块 可以连续多次重复使用

v-show

按条件显示元素 v-show  用法和v-if 基本相同

v-if和v-show 相同不同之处

相同之处:

  1. 都可以用于根据条件动态显示或隐藏页面元素。
  2. 都是Vue框架提供的指令,用于简化条件渲染的操作。
  3. 都可以通过条件表达式来确定元素是否显示,提供了灵活性和控制性。

不同之处:

  1. 触发时机:v-if是惰性的,只有在条件为真时才会渲染对应的元素;而v-show在初始化时即渲染了所有元素,只是在条件为假时将元素的display属性设为none。
  2. 性能开销:由于v-if是惰性的,条件为假时对应的元素不会被渲染,因此在条件变化频繁时,v-if具有更好的性能表现;而v-show虽然会一直渲染元素,但只是通过修改display属性来切换元素的显示与隐藏,不会造成重新渲染。
  3. 编译过程:v-if在条件为假时,对应的元素不存在于DOM结构中,需要重新编译和渲染;而v-show在条件为假时,元素始终存在于DOM结构中,只是通过样式控制其显示与隐藏,不会触发重新编译。
  4. 用法场景:一般来说,对于需要频繁切换显示状态的元素,使用v-show会比较适合;而对于需要根据条件动态添加或移除元素的场景,使用v-if更为合适。

综上所述,v-if和v-show虽然都是用于条件渲染的指令,但在实际应用中根据不同的场景和需求选择合适的指令来实现条件渲染效果将更加高效和灵活。

v-if 和 v-for

当二者同时存在时,v-if会先执行

v-ifv-for同时存在于同一个元素上时,Vue会根据官方文档的建议发出警告。原因是v-for的优先级比v-if更高,这意味着v-for会先被解析,然后再解析v-if。这可能会导致不必要的性能开销,因为v-if会在每次迭代时都被执行,而不是在条件为真时执行。

在这种情况下,建议的最佳做法是将v-if移动到包裹元素上,而不是直接放在带有v-for的元素上。这样可以确保v-if只会在条件为真时才会被执行,而不会在每次迭代时都被执行,从而提高性能并避免潜在的错误。

总的来说,最好避免在同一个元素上同时使用v-ifv-for,以确保代码的可读性和性能。

列表渲染

v-for

使用v-for 基于一个数组来渲染一个列表,v-for 语法 每一项 in 数组

v-for 与对象

v-for 来遍历一个对象时

结构:(值 键名 下标 ) in 对象

在v-for 里使用范围值

v-fo 可以接受一个整数值 从1 开始

v-if 和 v-for

当它们存有一个标签上 v-if 优先级更高  v-if 无法访问到 v-for作用域定义的变量别名

解决方法 在标签上放上<template>

数组变化检测

 vue能监听响应式数组的变更方法,在它们被调用时触发的更新

 方法:能改变原数组的方法(push, pop, shift, unshift, splice, sort, resvers)

替换一个数组:对原数组进行修改,返回新的数组

 旧数组  = 新数组

展示过滤或排序的结果

创建 计算属性  面对多次嵌套时 使用函数和v-for配合

事件处理

在Vue 3中,事件处理与Vue 2类似,但有一些新的特性和语法。你可以使用v-on指令来监听DOM事件,并在触发时执行相应的方法。

<template>
  <button @click="handleClick">点击我</button>
</template>

<script>
import { defineComponent } from 'vue';

export default defineComponent({
  methods: {
    handleClick() {
      console.log('按钮被点击了!');
    }
  }
});
</script>

监听事件

使用 v-on 简写为@ 来监听dom事

内联事件处理器

内联事件处理器 :事件被触发时执行绑定的js语句

 <button @click="变量 = ?">

方法事件处理器

一个执行组件上定义的方法的属性名或是路径

事件修饰符

  1. .stop:阻止事件冒泡
  2. .prevent:阻止事件的默认行为
  3. .capture:使用事件捕获模式
  4. .self:只当事件是从侦听器绑定的元素本身触发时才触发回调
  5. .once:事件只触发一次
  6. .passive:告诉浏览器你不想阻止事件的默认行为
<template>
  <div>
    <button @click.stop="handleClick">阻止事件冒泡</button>
    <a href="#" @click.prevent="handleClick">阻止默认行为</a>
    <div @click.capture="handleClick">使用捕获模式</div>
    <div @click.self="handleClick">只在元素本身触发时触发</div>
    <button @click.once="handleClick">只触发一次</button>
    <a href="#" @click.passive="handleClick">passive修饰符</a>
  </div>
</template>

<script>
import { defineComponent } from 'vue';

export default defineComponent({
  methods: {
    handleClick() {
      console.log('事件被触发了!');
    }
  }
});
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

8 Dubbo 应用案例(动手实操一波)

概述 案例相关配置可参考 GitHub:https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples 创建服务接口项目 创建一个名为 hello-dubbo-service-user-api 的项目,该项目只负责定义接口 POM <?xml version="1.0" enco…

28.Gateway-网关过滤器

GatewayFilter是网关中提供的一种过滤器&#xff0c;可以多进入网关的请求和微服务返回的响应做处理。 GatewayFilter(当前路由过滤器&#xff0c;DefaultFilter) spring中提供了31种不同的路由过滤器工厂。 filters针对部分路由的过滤器。 default-filters针对所有路由的默认…

OpenCV如何实现背投

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV直方图比较 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习&#xff1a; 什么是背投以及它为什么有用如何使用 Ope…

GraspNet-1Billion 论文阅读

文章目录 GraspNet-1Billion总体数据集评价指标网络pointnet&#xff1a;Approach Network:Operation Network&#xff1a;Tolerance Network 摘要相关工作基于深度学习的抓取预测算法抓取数据集点云深度学习 GraspNet-1Billion CVPR2020 上海交大 论文和数据集地址&#xff1…

【漏洞复现】艺创科技智能营销路由器后台命令执行漏洞

漏洞描述&#xff1a; 成都艺创科技有限公司是一家专注于新型网络设备研发、生产、销售和服务的企业&#xff0c;在大数据和云时代&#xff0c;致力于为企业提供能够提升业绩的新型网络设备。 智能营销路由器存在后台命令执行漏洞&#xff0c;攻击者可利用漏洞获取路由器控制…

Android 开发工具使用

c调试 在NDK调试的时候&#xff0c;如果找不到 符号的话&#xff0c;我们可以在调试配置中添加符号地址的全路径一直到根目录&#xff1a;&#xff0c;xxx/armeabi-v7a&#xff1a; You must point the symbol search paths at the obj/local/ directory. This is also not a …

1146. 快照数组

java版本 class SnapshotArray {int id 0;List<int[]>[] snapshots;public SnapshotArray(int length) {snapshots new List[length];for (int i 0; i < length; i) {snapshots[i] new ArrayList<int[]>();}}public void set(int index, int val) {snapsho…

运算符重载(1)

1.加号运算符重载&#xff0c;这里用编译器统一的名称operator代替函数名 #include<iostream> using namespace std; //1.成员函数的加号重载 //2.全局函数的加号重载 class Person { public:Person() {};//1.成员函数的加号重载//Person operator(Person& p)//{// P…

E4980A是德科技E4980A精密LCR表

181/2461/8938产品概述&#xff1a; Keysight E4980A 精密 LCR 表为各种元件测量提供了精度、速度和多功能性的最佳组合。E4980A 在低阻抗和高阻抗范围内提供快速测量速度和出色的性能&#xff0c;是元件和材料的一般研发和制造测试的终极工具。LAN、USB 和 GPIB PC 连接可提高…

Springboot实现国际化以及部署Linux不生效问题

1、在application.properties 添加以下配置&#xff1a; #国际化配置 spring.messages.basenamei18n/messages/messages spring.messages.fallback-to-system-localefalse 2、添加配置文件在 resources目录下 如下图所示&#xff1a; 这个国际化文件命名有个坑&#xff0c;必须…

校车车载4G视频智能监控系统方案

一、项目背景 随着社会的快速发展&#xff0c;校车安全问题日益受到人们的关注。为了提高校车运营的安全性&#xff0c;保障学生的生命安全&#xff0c;我们提出了一套校车车载4G视频智能监控系统方案。该系统能够实时监控校车内部和外部环境&#xff0c;及时发现并处理潜在的…

多线程模型浅谈

优质博文&#xff1a;IT-BLOG-CN 笔者近期在维护的项目中发现了一些比较随机的问题&#xff0c;时有时无的&#xff0c;排查之后发现是使用多线程导致的&#xff0c;恍然之下研究了下多线程的底层模型相关知识&#xff0c;现不大家简要分享下。 一个程序进程可包含多个线程&am…

统计建模——模型——python为例

统计建模涵盖了众多数学模型和分析方法&#xff0c;这些模型和方法被广泛应用于数据分析、预测、推断、分类、聚类等任务中。下面列举了一些常见的统计建模方法及其具体应用方式&#xff1a; 目录 1.线性回归模型&#xff1a; ----python实现线性回归模型 -------使用NumPy…

牛客网刷题 | BC66 牛牛的通勤

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 牛牛的通勤路上有两…

yolov8旋转目标检测输出的角度转化为适合机械爪抓取的角度

1. 机械爪抓取时旋转的角度定义 以X轴正方向&#xff08;右&#xff09;为零度方向&#xff0c;角度取值范围[-90&#xff0c;90)。 确认角度的方法&#xff1a; 逆时针旋转X轴&#xff0c;X轴碰到矩形框长边时旋转过的角度记为angleX&#xff1a; 1.如果angleX小于90&#xf…

udp/tcp错误总结

udp tcp——多进程 tcp——多线程 tcp——线程池 tcp——守护进程 &#x1f386;udp  ✨pthread_create 错误总结  ✨LockGuard错误总结  ✨服务端需要写成多线程  ✨客户端也需要写成多线程  ✨多线程调试工具 &#x1f386;tcp  ✨tcp独有调试工具——telnet  ✨Threa…

Python的历史演变与作用

目录 1.概述 2.起源 3.发展阶段 4.Python 3的诞生 5.现状与未来 6.Python的作用 6.1.Web开发 6.2.数据科学与人工智能 ​​​​​​​6.3.自动化与脚本编程 ​​​​​​​6.4.教育与学习 ​​​​​​​6.5.其他领域 7.结语 1.概述 Python&#xff0c;一门富有表…

DSP开发实战教程-国产DSP替代进口TI DSP的使用技巧

1.替换CCS安装路径下的Flash.out文件 找到各自CCS的安装路径&#xff1a; D:\ti\ccs1230\ccs\ccs_base\c2000\flashAlgorithms 复制进芯电子国产DSP官网提供的配置文件 下载链接&#xff1a;https://mp.csdn.net/mp_download/manage/download/UpDetailed 2.替换原有文件 3.…

Thinkphp--in-sqlinjection

一、漏洞原理 在 Builder 类的 parseData 方法中&#xff0c;由于程序没有对数据进行很好的过滤&#xff0c;将数据拼接进 SQL 语句&#xff0c;导致 SQL注入漏洞 的产生。 影响版本 5.0.13<ThinkPHP<5.0.15 5.1.0<ThinkPHP<5.1.5 在相应的文件夹位置打开终端…

记录如何用php做一个网站访问计数器的方法

简介 创建一个简单的网站访问计数器涉及到几个步骤&#xff0c;包括创建一个用于存储访问次数的文件或数据库表&#xff0c;以及编写PHP脚本来增加计数和显示当前的访问次数。 方法 以下是使用文件存储访问次数的基本步骤&#xff1a; 创建一个文本文件来存储计数&#xff1a…
最新文章