JS.VUE.MULTI.WORD.COMPONENT.NAMES

Ensure component names to be multi-word

Rule Details

This rule require component names to be always multi-word, except for root App components, and built-in components provided by Vue, such as <transition> or <component>. This prevents conflicts with existing and future HTML elements, since all HTML elements are a single word.

{'vue/multi-word-component-names': ['error']}

Copy
/* GOOD */
Vue.component('todo-item', {
  // ...
})

/* BAD */
Vue.component('Todo', {
  // ...
})

{'vue/multi-word-component-names': ['error']}

Copy
<script>
/* GOOD */
export default {
  name: 'TodoItem',
  // ...
}
</script>

{'vue/multi-word-component-names': ['error']}

Copy
<script>
/* BAD */
export default {
  name: 'Todo',
  // ...
}
</script>

{'vue/multi-word-component-names': ['error']}

Copy
<!-- filename: Todo.vue -->
<script>
/* BAD */
export default {
  // ...
}
</script>

{'vue/multi-word-component-names': ['error']}

Copy
<!-- filename: Todo.vue -->
<!-- BAD -->
<script setup>
  // ...
</script>

{'vue/multi-word-component-names': ['error']}

Copy
<!-- filename: TodoItem.vue -->
<!-- GOOD -->
<script setup>
  // ...
</script>

{'vue/multi-word-component-names': ['error']}

Copy
<!-- filename: Todo.vue -->
<!-- GOOD -->
<script setup>
  // ...
</script>
<script>
export default {
  name: 'TodoItem'
}
</script>

Options

Copy
{
  "vue/multi-word-component-names": ["error", {
    "ignores": []
  }]
}
  • ignores (string[]) ... The component names to ignore. Sets the component name to allow.

ignores: ["Todo"]

{'vue/multi-word-component-names': ['error', {ignores: ['Todo']}]}

Copy
<script>
export default {
  /* GOOD */
  name: 'Todo'
}
</script>

{'vue/multi-word-component-names': ['error', {ignores: ['Todo']}]}

Copy
<script>
export default {
  /* BAD */
  name: 'Item'
}
</script>

{'vue/multi-word-component-names': ['error', {ignores: ['Todo']}]}

Copy
<!-- filename: Todo.vue -->
<!-- GOOD -->
<script setup>
  // ...
</script>

Further Reading

  • Style guide - Multi-word component names (https://vuejs.org/style-guide/rules-essential.html#use-multi-word-component-names)

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/