条件渲染
v-if="xxx"
当表达式为 false 时,不展示的 DOM 元素直接被移除,适用于切换频率较低的场景 (管理系统的权限列表);配合v-else
使用;v-show="xxx"
当表达式为 false 时,不展示的 DOM 元素隐藏,display: none
适用于切换频率较高的场景 (前台页面的数据展示);- xxx 表示的是一个表达式,可以求出一个值,判断这个值是 true 或 false,当他们的表达式为 true 时则显示;
v-if
一般和template
搭配使用,在一个template
标签中使用v-if
;因为template
标签不影响结构,在解析时会被移除;
当 v-for 和 v-if 同时使用的时候,v-for 的优先级更高,会导致 v-if 重复运行在每个 for 循环中,会重复操作 DOM。(vue3 中 v-if 优先级更高)
如果循环内部没有条件判断,则用 template 标签包裹 v-for,在外面进行 v-if 判断;
如果循环内部有条件判断,则用计算属性提前过滤掉不需要显示的项(就不需要 v-if 了)