Skip to content

Latest commit

 

History

History
93 lines (69 loc) · 2.22 KB

no-template-shadow.md

File metadata and controls

93 lines (69 loc) · 2.22 KB
pageClass sidebarDepth title description since
rule-details
0
vue/no-template-shadow
disallow variable declarations from shadowing variables declared in the outer scope
v5.0.0

vue/no-template-shadow

disallow variable declarations from shadowing variables declared in the outer scope

  • ⚙️ This rule is included in all of "plugin:vue/vue3-strongly-recommended", *.configs["flat/strongly-recommended"], "plugin:vue/strongly-recommended", *.configs["flat/vue2-strongly-recommended"], "plugin:vue/vue3-recommended", *.configs["flat/recommended"], "plugin:vue/recommended" and *.configs["flat/vue2-recommended"].

no-template-shadow should report variable definitions of v-for directives or scope attributes if they shadow the variables in parent scopes.

📖 Rule Details

This rule aims to eliminate shadowed variable declarations of v-for directives or scope attributes.

<template>
  <!-- ✓ GOOD -->
  <div v-for="i in 5"></div>
  <div v-for="j in 5"></div>

  <!-- ✗ BAD -->
  <div>
    <div v-for="k in 5">
      <div v-for="k in 10"></div>
      <div slot-scope="{ k }"></div>
    </div>
  </div>
  <div v-for="l in 5"></div>
</template>

<script>
export default {
  data() {
    return {
      l: false
    }
  }
}
</script>

🔧 Options

This rule takes one optional object option, with the property "allow".

{
  "no-template-shadow": ["error", { "allow": [] }]
}
  • "allow" ([string]) Array of identifier names for which shadowing is allowed.

Examples of correct code for the { "allow": ["i"] } option:

<template>
  <div v-for="i in 5"></div>
</template>

<script>
export default {
  data() {
    return {
      i: 'some value'
    }
  }
}
</script>

🚀 Version

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

🔍 Implementation