v-if
指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true
值的时候被渲染
v-for
指令基于一个数组来渲染一个列表。v-for
指令需要使用 item in items
形式的特殊语法,其中 items
是源数据数组或者对象,而 item
则是被迭代的数组元素的别名
在 v-for
的时候,建议设置key
值,并且保证每个key
值是的,这便于diff
算法进行优化。
v-for比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当之需要渲染很小一部分的时候。
- 不要把
v-if
和v-for
同时用在同一个元素上,带来性能方面的浪费(每次渲染都会先循环再进行条件判断) - 如果避免出现这种情况,则在外层嵌套
template
(页面渲染不生成dom
节点),在这一层进行v-if判断,然后在内部进行v-for循环<template v-if="isShow"> <p v-for="item in items"> </template>
如果条件出现在循环内部,可通过计算属性
computed
提前过滤掉那些不需要显示的项computed: { items: function() { return this.list.filter(function (item) { return item.isShow }) } }
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/114741.html<