Element iterated with v-for should not have a static key attribute

  • VUE_STATIC_KEY_ATTRIBUTE
  • Error
  • Medium
  • vue

This rule applies when an element iterated with v-for directive has a static key attribute without v-bind.

When rendering v-for, Vue uses the key attribute to track the identity of iterated elements.

If a static key attribute is used, elements share the same value for the key attribute. This may cause an update error and Vue outputs a warning message.

Noncompliant Code Example

View with compliant examples side by side
<template>
  <ul>
    <li v-for="p in persons" key="p.id"> <!-- VUE_STATIC_KEY_ATTRIBUTE alarm -->
      {{ p.id }}: {{ p.name }} <input type="text">
    </li>
  </ul>
</template>

Compliant Code Example

View with noncompliant examples side by side
<template>
  <ul>
    <li v-for="p in persons" v-bind:key="p.id">
      {{ p.id }}: {{ p.name }} <input type="text">
    </li>
  </ul>
</template>

Version

This rule was introduced in DeepScan 1.15.0-beta.

See

Was this documentation helpful?