前言

在Vue官方文档中,明确说明了不建议将v-for和v-if同时使用。因为两者作用在同一个元素时,优先级是不同的。

  • 在vue2中,v-for的优先级更高
  • 在vue3中,v-if的优先级更高

Vue2

在Vue2中,v-for的优先级是高于v-if的,如果作用在同一元素上,输出的渲染函数中可以看除会先执行循环再判断条件,哪怕只渲染列表中一小部分元素,也得在每次重渲染的时候遍历整个列表,这会造成性能的浪费

Vue3

而在Vue3中,v-if的优先级时高于v-for的,因此v-if执行时要调用的变量可能还不存在,会导致报错。

使用场景

通常有两种情况导致需要v-if和v-for同时使用:

  • 为了过滤列表中的项目,例如v-for = 'user in users' v-if = 'user.isActive' 。此时可以定义出一个计算属性,例如activeUsers,让其返回过滤后的列表即可,users.filter( u => u.isActive)

  • 为了避免渲染本应该被隐藏的列表,例如v-for = 'user in users' v-if = 'shouldShowUsers'。此时可以把v-if绑定在容器元素上,例如ul,ol或在外包一层template

详解为什么v-if和v-for不能同时使用相关推荐

  1. apache配置文件详解与优化

    apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...

  2. 家庭网络视频文件共享服务器,【新手入门教程】 高清播放机与家庭网络文件共享设置详解|新手学堂...

    高清播放机与家庭网络 文件共享设置详解 cxjt2002' h3 }% ~; e- c9 b- A  V 拥有高清网络播放机的用户,经常遇到和希望解决的一个问题就是,如何使高清网络播放机共享浏览播放家 ...

  3. php编译工具 知乎,关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解...

    貌似我没有像QQ邮箱之类的装知乎的插件 是用HTML5的新功能实现的吗? 看了@朱利安 的回答,发现我描述的不够清楚 我是用QQ截图之类的工具截的图,然后图片本身是保存在剪切板里的,剪切板中保存的*不 ...

  4. 多重背包O(N*V)算法详解(——使用单调队列)

    多重背包O(N*V)算法详解(--使用单调队列) 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网上关 ...

  5. 矢量控制与V/F控制详解

    原文:http://m.elecfans.com/article/714518.html 一.矢量控制 1.矢量控制简介 矢量控制是一种电机的磁场定向控制方法:以异步电动机的矢量控制为例:它首先通过电 ...

  6. HTC One V卡刷RUU准备工作 图文教程详解

    为什么80%的码农都做不了架构师?>>>    HTC One V卡刷RUU准备工作 图文教程详解 相对于线刷,HTC One V卡刷RUU更为方便快捷,不会和普通RUU那样这么容易 ...

  7. 气缸标识上vr什么意思_发动机结构代号中L、V、W都是啥意思?图文详解让你不再迷糊...

    发动机结构代号中L.V.W都是啥意思?图文详解让你不再迷糊大家经常能看到L4.V6.W8这样的发动机结构代号,小编今天就用超高清的结构图告诉你这些代号都是什么鬼? 01 直列式(L)发动机直列式发动机 ...

  8. 命令行中 python -v 和 python -V 详解

    看了好多帖子说 "python -v 是包括库的版本号,而 python -V 才是版本号",特意去搜了下官方文档,证实如上说法并不对,以下是详解: 来源:https://docs ...

  9. tx2 fpga pcie无法读写_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解

    双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...

  10. ubuntu arm qt_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解

    双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...

最新文章

  1. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
  2. oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法
  3. ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
  4. IO 流 自定义字节流的缓冲区-read 和write 的特点
  5. 696. Count Binary Substrings 计数二进制子串
  6. 【CASS精品教程】Win 10操作系统CAD 2006+CASS 7.1安装图文经典教程(附安装包下载)
  7. ftp+linux+使用webdav,群晖-win/mac/nfs ftp tftp webdav文件服务的概念及设置
  8. Minix、UNIX、Linux的区别与联系
  9. 控制Dell PowerEdge R720的风扇转速 (利用IPMI)
  10. IDEA中项目的两种打包方式
  11. IE下载文件时,中文文件名乱码问题
  12. 工业设备产品建模3d展示三维模型展示
  13. PHP webshell、暴力破解
  14. 适合编程初学者的开源项目:小游戏2048(微信小程序版)
  15. #今日论文推荐# 斯坦福开发微型机器人,改善靶向给药技术
  16. 魔兽世界修改服务器配置文件,worldserver.conf 服务端配置文件说明
  17. Ps-制作二级页面总结
  18. 用Arduino自制一个小型蜘蛛机器人
  19. 使用c语言实现复数运算的程序,用C语言实现的复数运算程序设计
  20. RPO 相对路径覆盖攻击

热门文章

  1. 狂神说Java-Redis笔记
  2. 一篇关于串口的经典文章
  3. 语音发声机理及发声线性模型
  4. 对B/S架构和C/S架构的分析
  5. IDEA 创建package包
  6. 常用API类方法笔记整理1
  7. 外汇天眼:随着美元贬值所有世界货币,每个国家都在为自己着想
  8. php carbon详解,Carbon 中文文档
  9. 【论文翻译】 Clustering by Passing Messages Between Data Points
  10. 一个暴风雨的夜晚——一个普通而又伟大老师的一天