# vue/no-v-for-template-key-on-child

disallow key of <template v-for> placed on child elements

  • ⚙️ This rule is included in all of "plugin:vue/vue3-essential", "plugin:vue/vue3-strongly-recommended" and "plugin:vue/vue3-recommended".

# 📖 Rule Details

This rule reports the key of the <template v-for> placed on the child elements.

In Vue.js 3.x, with the support for fragments, the <template v-for> key can be placed on the <template> tag.

See Migration Guide - key attribute > With <template v-for> (opens new window) for more details.


This rule is targeted at Vue.js 3.x. If you are using Vue.js 2.x, enable the vue/no-v-for-template-key rule instead. Don't enable both rules together; they are conflicting.

<template> <!-- ✓ GOOD --> <template v-for="todo in todos" :key="todo"> <Foo /> </template> <!-- ✗ BAD --> <template v-for="todo in todos"> <Foo :key="todo" /> </template> </template>
Now loading...

# 🔧 Options


# 📚 Further Reading

# 🚀 Version

This rule was introduced in eslint-plugin-vue v7.0.0

# 🔍 Implementation