V-if will not render the element if the expression is false. V-show, it will render the element in the DOM no matter what, but will be hidden if false. v-if supports both v-else and v-else-if and may be used inside the template element, v-show does not.