Both conditionally display an element, but they do it differently — v-if adds/removes the element from the DOM; v-show keeps it in the DOM and toggles its CSS display.
vue
<template>
<p v-if="isVisible">Rendered only when true (removed from DOM when false)</p>
<p v-show="isVisible">Always in the DOM; just display:none when false</p>
</template>
