v-if和v-show的区别

简介: v-if和v-show的区别

v-if

条件性地渲染一块内容,这块内容只会在指令的表达式返回 truthy值的时候被渲染。

/**truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 假值(即除 false、0、""、null、undefined 和 NaN 以外皆为真值)*/

<template> 上的 v-if

因为 v-if 是一个指令,他必须依附于某个元素。但如果我们想要切换不止一个元素呢?在这种情况下我们可以在一个 <template> 元素上使用 v-if,这只是一个不可见的包装器元素,最后渲染的结果并不会包含这个 <template> 元素。

v-show

根据条件展示元素, 不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display。

两者的区别

v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

 

目录
相关文章
|
JavaScript
v-show和v-for区别
v-show和v-for区别
v-show和v-for区别
|
JavaScript 算法 前端开发
v-show和v-if有什么区别?使用场景分别是什么?
v-show和v-if有什么区别?使用场景分别是什么?
128 0
|
JavaScript 前端开发
v-show和v-if的区别(面试题)
v-show和v-if的区别(面试题)
61 0
|
JavaScript 前端开发
v-show和v-if区别
v-show和v-if区别
128 0
|
JavaScript 前端开发
v-if和v-show的区别
v-if和v-show的区别
115 0
|
JavaScript 前端开发
v-if和v-show的区别?
v-if和v-show都是Vue.js框架中的指令,用于根据条件显示或隐藏DOM元素,但它们的实现方式不同,导致在使用时需要注意以下区别:
|
JavaScript 前端开发
v-if与v-show的使用方法以及区别
v-if与v-show的使用方法以及区别 在vue里面有两种方式来控制元素的显示与隐藏,分别是v-if和v-show,这两种方式都可以控制元素的显示与隐藏,那么如何进行使用呢?
|
JavaScript 前端开发
v-show的使用
v-show的使用
75 0