Skip to content

Latest commit

 

History

History
90 lines (69 loc) · 2.22 KB

no-reserved-keys.md

File metadata and controls

90 lines (69 loc) · 2.22 KB
pageClass sidebarDepth title description since
rule-details
0
vue/no-reserved-keys
disallow overwriting reserved keys
v3.9.0

vue/no-reserved-keys

disallow overwriting reserved keys

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

📖 Rule Details

This rule prevents to use reserved names to avoid conflicts and unexpected behavior.

<script>
/* ✗ BAD */
export default {
  props: {
    $el: String
  },
  computed: {
    $on: {
      get() {}
    }
  },
  data: {
    _foo: null
  },
  methods: {
    $nextTick() {}
  }
}
</script>

🔧 Options

{
  "vue/no-reserved-keys": ["error", {
    "reserved": [],
    "groups": []
  }]
}
  • reserved (string[]) ... Array of additional restricted attributes inside groups. Default is empty.
  • groups (string[]) ... Array of additional group names to search for duplicates in. Default is empty.

"reserved": ["foo", "foo2"], "groups": ["firebase"]

<script>
/* ✗ BAD */
export default {
  computed: {
    foo() {}
  },
  firebase: {
    foo2() {}
  }
}
</script>

📚 Further Reading

🚀 Version

This rule was introduced in eslint-plugin-vue v3.9.0

🔍 Implementation