Skip to content

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/essential", *.configs["flat/essential"], "plugin:vue/strongly-recommended", *.configs["flat/strongly-recommended"], "plugin:vue/recommended" and *.configs["flat/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> for more details.

Note

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

Nothing.

📚 Further Reading

🚀 Version

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

🔍 Implementation