当前位置: 首页 > news >正文

【Vue3】v-if和v-for优先级

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页


目录

  • 🌟 一、避免 v-if 和 v-for 一起使用
  • 🌟 二、优先级
  • 🌟 二、解决方法


🌟 一、避免 v-if 和 v-for 一起使用

永远不要把 v-if 和 v-for 同时用在同一个元素上

一般我们在两种常见的情况下会倾向于这样做:

  1. 为了过滤一个列表中的项目 (比如 v-for=“user in users” v-if=“user.isActive”)

在这种情形下,请将 users 替换为一个计算属性 (比如 activeUsers),让其返回过滤后的列表。

  1. 为了避免渲染本应该被隐藏的列表 (比如 v-for=“user in users” v-if=“shouldShowUsers”)

这种情形下,请将 v-if 移动至容器元素上

🌟 二、优先级

当 v-if 与 v-for 一起使用时,v-if 具有比 v-for 更高的优先级

<el-sub-menu index="1" v-for="(item,index) in this.$router.options.routes" v-if="!item.hidden" :key="index"><template #title ><el-icon><Location/></el-icon><span>{{item.name}}</span></template><el-menu-item :key="index" :index="child.path" v-for="(child,index) in item.children">{{child.name}}</el-menu-item>
</el-sub-menu>

同时使用v-if和v-for就会使得item元素还有进行渲染,就进行了if判断语句,导致item元素被判定为未定义,然后报错

Property "item" was accessed

🌟 二、解决方法

  • 过滤一个列表中的项目,将if中的条件用来过滤数组或对象,替换为一个计算属性,让其返回过滤后的数组或对象
  • v-if 移动至容器元素上
  • 可以使用v-show来代替(视情况而定)
http://www.lryc.cn/news/58.html

相关文章:

  • Windows上实现 IOS 自动化测试
  • Linux云服务器下怎么重置MySQL8.0数据库密码
  • JVM调优
  • 【配电网规划】SOCPR和基于线性离散最优潮流(OPF)模型的配电网规划( DNP )(Matlab代码实现)
  • 锦正茂EM3电磁铁的技术参数
  • Go最新版下载 Go1.20版新特性
  • Pywirt:一款基于Python的Windows安全应急响应工具
  • KDZD832 智能蓄电池活化仪
  • 纯css实现loading加载中(多种展现形式)
  • 【面试题】2023 vue高频面试知识点汇总
  • 跨境电商选品重要吗?
  • SpringBoot
  • python--turtle
  • NodeJS的后端Express项目部署到Ubuntu服务器,为前端提供API服务
  • 作为研发如何使用Github Api?
  • Java volatile学习
  • 用神经网络分类上和下
  • VS Code 1.75 发布!
  • Vue2仿网易云风格音乐播放器(附源码)
  • Spring相关面试题
  • 操作符详解(上篇)
  • 采样电路的3个组成部分
  • ffmpeg硬解码与软解码的压测对比
  • 操作符——“C”
  • YSP的UI界面设计
  • 干货 | 什么是磁传感器?最常用的磁传感器类型及应用
  • 操作符(运算符)详解
  • 【LeetCode每日一题】【2023/2/9】1797. 设计一个验证系统
  • 计算机图形学:改进的中点BH算法
  • 【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放