Difference between v-if
and v-show
If you are a Vue.js developer, you might know what's the difference, if not, let's check:
v-if
: to Render a block conditionally.
v-show
: to Display a block conditionally.
v-show
renders once and remains in theDOM
and only toggles thedisplay
CSS property.
That means if you have a heavy component and rendering is expensive, you can render it once(v-if
) and toggle that 💯 times without re-rendering(v-show
).
Example
<template>
<div v-if="isRendered">
<div v-show="isVisible">
<MyHeavyComponent/>
</div>
</div>
</template>
If we only use v-show, we don't have control on rendering and it will be rendered immediately(not displaying) without any conditions.
Top comments (2)
Oh yes, I already do that, and this is very important, especially when you have a component that makes requests in the mount hook and other lifecycle hooks.
Thank you for sharing your experience ✌️😀
And if you combine that with Async Components (lazy components), you also have control over loading and rendering components.