v-if和v-for写在同一标签上,谁的优先级高?为什么?怎么优化?

news/2024/7/10 1:30:15 标签: vue, 面试, javascript, js

v-if和v-for写在同一标签上,谁的优先级高?为什么?怎么优化?

大家都知道v-for的优先级肯定是比v-if高的,那么有思考过同时用的话会导致什么问题吗?

当它们处于同一节点,v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中。当你只想为部分项渲染节点时,这种优先级的机制会十分有用,如下:

javascript"><li v-for="todo in todos" v-if="!todo.isComplete">
  {{ todo }}
</li>

上面的代码将只渲染未完成的 todo。

vue_13">但是这期间vue已经经历了先循环,每次渲染都会先执行循环再判断条件,无论如何循环都不可避免,浪费了性能,如果数据量多的话就会造成很大的问题

而如果你的目的是有条件地跳过循环的执行,那么可以将 v-if 置于外层元素 (或 ) 上。如:

javascript"><ul v-if="todos.length">
  <li v-for="todo in todos">
    {{ todo }}
  </li>
</ul>
<p v-else>No todos left!</p>

如果你是要判断循环后的属性,那么可以先在循环前筛选数据先

javascript"><ul >
  <li v-for="todo in todos.filter(item=>item.isRender)">
    {{ todo }}
  </li>
</ul>

这样的话就不会耗费性能了


http://www.niftyadmin.cn/n/1162344.html

相关文章

密码学思维导图总结

自己学习总结了一些思维导图(持续更新中)&#xff0c;后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary

超级实用的 ES6 特性

这篇文章介绍了一些特性&#xff0c;在我看来&#xff0c;一个严肃的 JavaScript 开发者每天都多多少少会用到这些特性。 1、展开操作符 顾名思义&#xff0c;用于对象或数组之前的展开操作符&#xff08;…&#xff09;&#xff0c;将一个结构展开为列表。 演示一下&#x…

黑客技术思维导图总结

自己学习总结了一些思维导图(持续更新中)&#xff0c;后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary &#xff08;本文为图书笔记&#xff09;

普通函数function和箭头函数ES6 ()=」{}的区别

~~ 普通函数function和箭头函数ES6 ()>{}的区别 ~~ 箭头函数&#xff1a;let fun () > {console.log(lalalala); } 普通函数&#xff1a;function fun() {console.log(lalla); }箭头函数相当于匿名函数&#xff0c;并且简化了函数定义。箭头函数有两种格式&#xff0…

HTTP安全性思维导图总结

自己学习总结了一些思维导图(持续更新中)&#xff0c;后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary

网站跨域问题思维导图总结

自己学习总结了一些思维导图(持续更新中)&#xff0c;后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary

2020三元同学春招阿里淘系、阿里云、字节跳动面经 个人成长经验分享 | 掘金技术征文

原博客地址 https://juejin.im/post/5e7d4e8b6fb9a03c6422f112 本人今年 211 本科大三下&#xff0c;掘金六级博主&#xff0c;最近投实习&#xff0c;一共投了三家&#xff0c;阿里的淘系和阿里云&#xff0c;字节跳动的抖音&#xff0c;当然都是找人内推的&#xff0c;结果简…

Servlet思维导图总结

自己学习总结了一些思维导图(持续更新中)&#xff0c;后面附有GitHub链接 ,分享给大家。https://github.com/panjianlong13/MindMapSummary