JS.VUE.COMPONENT.OPTIONS.NAME.CASING
Enforce casing of the component names in `components` options
- Some problems reported by this rule are manually fixable by editor suggestions (https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
Rule Details
This rule aims to enforce casing of the component names in components
options.
Options
Copy
{
"vue/component-options-name-casing": ["error", "PascalCase" | "kebab-case" | "camelCase"]
}
This rule has an option which can be one of these values:
"PascalCase"
(default) ... enforce component names to pascal case."kebab-case"
... enforce component names to kebab case."camelCase"
... enforce component names to camel case.
Please note that if you use kebab case in components
options,
you can only use kebab case in template;
and if you use camel case in components
options,
you can't use pascal case in template.
For demonstration, the code example is invalid:
Copy
<template>
<div>
<!-- All are invalid. DO NOT use like these. -->
<KebabCase />
<kebabCase />
<CamelCase />
</div>
</template>
<script>
export default {
components: {
camelCase: MyComponent,
'kebab-case': MyComponent
}
}
</script>
"PascalCase"
(default)
{'vue/component-options-name-casing': ['error']}
Copy
<script>
export default {
/* GOOD */
components: {
AppHeader,
AppSidebar
}
}
</script>
{'vue/component-options-name-casing': ['error']}
Copy
<script>
export default {
/* BAD */
components: {
appHeader,
'app-sidebar': AppSidebar
}
}
</script>
"kebab-case"
{'vue/component-options-name-casing': ['error', 'kebab-case']}
Copy
<script>
export default {
/* GOOD */
components: {
'app-header': AppHeader,
'app-sidebar': appSidebar
}
}
</script>
{'vue/component-options-name-casing': ['error', 'kebab-case']}
Copy
<script>
export default {
/* BAD */
components: {
AppHeader,
appSidebar
}
}
</script>
"camelCase"
{'vue/component-options-name-casing': ['error', 'camelCase']}
Copy
<script>
export default {
/* GOOD */
components: {
appHeader,
appSidebar
}
}
</script>
{'vue/component-options-name-casing': ['error', 'camelCase']}
Copy
<script>
export default {
/* BAD */
components: {
AppHeader,
'app-sidebar': appSidebar
}
}
</script>