Vue <template>
element should not have v-show
directive
- VUE_TEMPLATE_WITH_V_SHOW
- Error
- Medium
- vue
This rule applies when a Vue <template>
element has a v-show
directive.
v-show
is a directive for conditionally displaying an element but it does not support <template>
. If v-show
is used with <template>
, it will be ignored and the <template>
will be rendered as a native HTML element instead of a Vue built-in.
If you intended not to show the contents of <template>
according to a specific value, you should specify the value as v-if
instead of v-show
.
Noncompliant Code Example
View with compliant examples side by side<template>
<button v-on:click="flag = !flag">Show or hide (flag: {{ flag }})</button>
<template v-show="flag"> <!-- VUE_TEMPLATE_WITH_V_SHOW alarm -->
Only show me if flag is true!
</template>
</template>
Compliant Code Example
View with noncompliant examples side by side<template>
<button v-on:click="flag = !flag">Show or hide (flag: {{ flag }})</button>
<template v-if="flag">
Only show me if flag is true!
</template>
</template>
Version
This rule was introduced in DeepScan 1.17.0-beta.