详解为什么v-if和v-for不能同时使用
前言
在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不能同时使用相关推荐
- apache配置文件详解与优化
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...
- 家庭网络视频文件共享服务器,【新手入门教程】 高清播放机与家庭网络文件共享设置详解|新手学堂...
高清播放机与家庭网络 文件共享设置详解 cxjt2002' h3 }% ~; e- c9 b- A V 拥有高清网络播放机的用户,经常遇到和希望解决的一个问题就是,如何使高清网络播放机共享浏览播放家 ...
- php编译工具 知乎,关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解...
貌似我没有像QQ邮箱之类的装知乎的插件 是用HTML5的新功能实现的吗? 看了@朱利安 的回答,发现我描述的不够清楚 我是用QQ截图之类的工具截的图,然后图片本身是保存在剪切板里的,剪切板中保存的*不 ...
- 多重背包O(N*V)算法详解(——使用单调队列)
多重背包O(N*V)算法详解(--使用单调队列) 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网上关 ...
- 矢量控制与V/F控制详解
原文:http://m.elecfans.com/article/714518.html 一.矢量控制 1.矢量控制简介 矢量控制是一种电机的磁场定向控制方法:以异步电动机的矢量控制为例:它首先通过电 ...
- HTC One V卡刷RUU准备工作 图文教程详解
为什么80%的码农都做不了架构师?>>> HTC One V卡刷RUU准备工作 图文教程详解 相对于线刷,HTC One V卡刷RUU更为方便快捷,不会和普通RUU那样这么容易 ...
- 气缸标识上vr什么意思_发动机结构代号中L、V、W都是啥意思?图文详解让你不再迷糊...
发动机结构代号中L.V.W都是啥意思?图文详解让你不再迷糊大家经常能看到L4.V6.W8这样的发动机结构代号,小编今天就用超高清的结构图告诉你这些代号都是什么鬼? 01 直列式(L)发动机直列式发动机 ...
- 命令行中 python -v 和 python -V 详解
看了好多帖子说 "python -v 是包括库的版本号,而 python -V 才是版本号",特意去搜了下官方文档,证实如上说法并不对,以下是详解: 来源:https://docs ...
- tx2 fpga pcie无法读写_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...
- ubuntu arm qt_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...
最新文章
- php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
- oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法
- ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
- IO 流 自定义字节流的缓冲区-read 和write 的特点
- 696. Count Binary Substrings 计数二进制子串
- 【CASS精品教程】Win 10操作系统CAD 2006+CASS 7.1安装图文经典教程(附安装包下载)
- ftp+linux+使用webdav,群晖-win/mac/nfs ftp tftp webdav文件服务的概念及设置
- Minix、UNIX、Linux的区别与联系
- 控制Dell PowerEdge R720的风扇转速 (利用IPMI)
- IDEA中项目的两种打包方式
- IE下载文件时,中文文件名乱码问题
- 工业设备产品建模3d展示三维模型展示
- PHP webshell、暴力破解
- 适合编程初学者的开源项目:小游戏2048(微信小程序版)
- #今日论文推荐# 斯坦福开发微型机器人,改善靶向给药技术
- 魔兽世界修改服务器配置文件,worldserver.conf 服务端配置文件说明
- Ps-制作二级页面总结
- 用Arduino自制一个小型蜘蛛机器人
- 使用c语言实现复数运算的程序,用C语言实现的复数运算程序设计
- RPO 相对路径覆盖攻击