Vue思考题_01v-for与v-if的优先级谁更高

news2024/11/16 8:26:54

目录

        • vue2
        • vue3

在这里插入图片描述

官方文档上说不推荐将v-for与v-if在同一个标签上使用,因为两者优先级并不明显。

那么到底是那个指令的优先级比较高呢? 在vue2与vue3中答案是相反的

vue2

在vue2中将2个指令放在同一个标签上

<template>
  <ul>
    <li v-for="item in list" :key="item.key" v-if="item.key!=2">{{ item.name }}</li>
  </ul>
</template>

<script>
export default {
  name: 'App',
  data(){
    return{
      list:[
        {
          key: '1', 
          name: 'item1'
        },
        {
          key: '2', 
          name: 'item2'
        },
        {
          key: '3', 
          name: 'item3'
        }
      ]
    }
  }
}
</script>

eslint会提示不建议将两个指令放在同一个标签上

 The 'list' variable inside 'v-for' directive should be replaced with a computed property that returns filtered array instead. You should not mix 'v-for' with 'v-if'

其实是因为在vue2中v-for比v-if的优先级高,当v-for与v-if在同一个标签上时,会先循环然后再进行if判断造成性能浪费。

vue3

在vue3中将2个指令放在同一个标签上:

<template>
  <ul>
    <li v-for="item in list" :key="item.key" v-if="item.key!=2">{{ item.name }}</li>
  </ul>
</template>

<script>
export default{
  setup(){
    const list = [
      {
        key: '1', 
        name: 'item1'
      },
      {
        key: '2', 
        name: 'item2'
      },
      {
        key: '3', 
        name: 'item3'
      }
    ]
    return{
      list
    }
  }
}
</script>

在这里插入图片描述

报错:Cannot read properties of undefined (reading ‘key’)

原因:在vue3中 v-if的优先级高于v-for,v-if 的条件将无法访问到 v-for 作用域内定义的变量别名。

相当于先执行v-if=‘item.key != 2’ 此时还没有执行v-for指令,item相当于为undefiend,通过点语法访问undefined的属性值自然就会报错啦。

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

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

相关文章

2023-10-10-C++指针和引用【程序员生涯的第一座里程碑】

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

中职院校网络综合布线技术理实一体化实训室建设方案

中职院校的网络综合布线技术课程存在一些问题,主要表现在: 教师过于注重理论知识的讲授,实践教学被忽视。学校硬件设施不足,无法开展案例中的实际操作,影响学生实践能力的培养。学生进入工作后,实际操作能力较差,难以胜任工作岗位。 为了提高学生的网络综合布线技能和操作能力…

碰撞检测算法——分离轴算法实现(一)

在实现分离轴算法前&#xff0c;需要做一些准备工作&#xff0c;在Unity中实现自定义多边形的显示&#xff0c;以及获取多边形的顶点和边的数据。 1.实现自定义多边形显示 Unity中MeshFilter是负责处理Mesh&#xff08;网格&#xff09;的信息的引用&#xff0c;MeshRender是渲…

管程的定义以及基本特征

1.引入管程 为了解决信号量机制存在的问题&#xff1a;编写程序困难、易出错。 1973年&#xff0c;Brinch Hansen首次在程序设计语言(Pascal)中引入了“管程”成分&#xff1a;一种高级同步机制。 2.管程的定义和基本特征 1.管程是一种特殊的软件模块&#xff0c;有这些部分…

Leetcode——数组的遍历系列练习

485. 最大连续 1 的个数 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {// 记录最大连续1个数int max 0;// 记录数组中存在1个数int sum 0;// 遍历连续1个数int count 0;for (int i 0; i < nums.size() - 1; i) {if (nums[i] 1)s…

linux | linux扩大磁盘空间 | centos7.9 | 虚拟机

注意&#xff1a;可以完全参考下面这边博客&#xff08;我只是搬运工&#xff09; centos扩大磁盘空间 简单讲讲&#xff0c;为什么有点失落落的&#xff1f; 明明就是一个 很程序化的东西 可是网上一大推 天花乱坠 而且很多人都是半吊子水&#xff0c;甚至半吊子都没有 通过关…

jdbc(DriverManager+Connection+Statement+ResultSet)+SQL注入+开启预编译+数据连接池

1 JDBC概念 JDBC 就是使用Java连接并操作数据库的一套API 全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接 2 JDBC优势 可随时替换底层数据库&#xff0c;访问数据库的Java代码基本不变 以后编写操作数据库的代码只需要面向JDBC&#xff08;接口&#xf…

裸辞18K外包,面试阿里、字节全都一面挂,哭死.....

测试员可以先在外包积累经验&#xff0c;以后去大厂就很容易&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大…

[软件工具]ARW文件批量转图片jpg工具使用教程

当你有一批后缀为.ARW格式图像文件怎么转jpg呢&#xff0c;我们可以使用这个工具进行转换首先我们打开软件 然后我们直接导入文件夹&#xff0c;点击开始转换等待转换完成即可。详细视频教程参看&#xff1a; ARW文件批量转图片jpg png bmp工具使用教程_哔哩哔哩_bilibili这个…

自动化测试基础篇:Selenium 框架设计(POM)

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。本文介绍selenium的框架设计。 自动化测试框架 1.什么是自动化测试框架 简单来说&#xff0c;自动化测试框架就是由一些标准&#xff0c;协议&…

Vue-2.1scoped样式冲突

默认情况&#xff1a;写在组件中的样式会全局生效->因此很容易造成多个组件之间的样式冲突问题 1.全局样式&#xff1a;默认组件中的样式会作用到全局 2.局部样式&#xff1a;可以给组件加上scoped属性&#xff0c;可以让样式只作用于当前组件 <style scoped> <…

长沙建筑模板生产厂家有哪些?

在湖南长沙地区&#xff0c;建筑施工企业寻找一家可信赖的建筑模板供应商是非常重要的。在长沙地区&#xff0c;有多家建筑模板生产厂家&#xff0c;其中值得一提的是能强优品木业&#xff0c;他们是长沙地区建筑模板生产的领先供应商之一。 能强优品木业位于广西贵港市&#x…

Leetcode: 63. 不同路径 II(动态规划)

1. 题目解析 LeetCode链接 根据题目可以得出&#xff0c;当处于 [i][j] 位置时只能从 [i][j - 1], 和 [i - 1][j] 到达&#xff0c;所以我们只需要将到达上述两点的路径相加就可以得到到达该点的路径和 2. 解题思路 通过分析题目我们可以使用动态规划来解决这道题 首先我们…

【计算机网络笔记】什么是计算机网络?

前言计算机网络的定义交换网络什么是Internet从组成细节角度看从服务角度看 最后感谢 &#x1f496; 本篇文章总字数&#xff1a;1342字 预计阅读时间&#xff1a;5~10min 建议收藏之后慢慢阅读 前言 计算机网络通信技术计算机技术。 计算机网络是通信技术与计算机技术紧密结…

求后缀表达式的值

后缀表达式的值 【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xff08;—&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;四种运算符。每个运算数之间…

面试题____Java小白找工作必须领悟的修仙秘籍(二)

当我们走出校园&#xff0c;步入社会&#xff0c;必须得找工作&#xff0c;那么作为it小白你必须拥有过硬的基础应用知识&#xff0c;才能慢慢的适应工作的节奏&#xff0c;以下内容则都是基础中的基础&#xff0c;需要全部进行掌握&#xff0c;因为这里可能有你面试时需要回答…

故障注入常用方法有哪些 其重要性是什么

故障注入是一种有效的测试方法&#xff0c;可用于评估系统对异常情况的响应。通过这种测试方法&#xff0c;可以发现系统中的潜在问题&#xff0c;并采取适当措施来改进系统的质量和性能。本文将介绍故障注入常用方法及重要性! 一、故障注入常用方法 1、随机故障注入&#xff1…

交易履约之结算平台实践 | 京东云技术团队

导读 京东科技业务在快速发展的同时&#xff0c;产生了众多线上化资金结算的需求。传统的线下资金结算模式有着人力成本高、耗时长、多方沟通协调成本高、结算准确率低等固有缺点&#xff0c;且无法满足“风法财审”对于资金流程的管控要求&#xff0c;在此背景下金道结算平台…

springboot就业信息管理系统springboot32

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…