src/content/docs/linter/rules/use-vue-multi-word-component-names.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> :::caution This rule is part of the [nursery](/linter/#nursery) group. This means that it is experimental and the behavior can change at any time. ::: ## Summary - Rule available since: `v2.2.3` - Diagnostic Category: [`lint/nursery/useVueMultiWordComponentNames`](/reference/diagnostics#diagnostic-category) - This rule doesn't have a fix. - The default severity of this rule is [**error**](/reference/diagnostics#error). - This rule belongs to the following domains: - [`vue`](/linter/domains#vue) - Sources: - Inspired from [`vue/multi-word-component-names`](https://eslint.vuejs.org/rules/multi-word-component-names){
"linter": {
"rules": {
"nursery": {
"useVueMultiWordComponentNames": "error"
}
}
}
}
Enforce multi-word component names in Vue components.
Using a single-word component name (e.g. App, Header) can:
This rule requires component names to be "multi-word".
A name is considered multi-word when:
my-component)MyComponent); single-cap names like App or Foo are rejectedComponent names are extracted from the name property in Options API components, or inferred from the file name if not explicitly set.
<script>
export default {
name: "Foo"
};
</script>
import { defineComponent } from "vue";
export default defineComponent({
name: "Header"
});
import { createApp } from "vue";
createApp({
name: "Widget"
}).mount("#app");
<script>
export default {
name: "MyComponent"
};
</script>
export default {
name: "my-component"
};
defineComponent({
name: "MyComponent"
});
createApp({ name: "MyApp" }).mount("#app");
ignoresAdditional single-word component names to ignore (case-insensitive). The rule already ignores Vue built-in components and App by default.
{
"linter": {
"rules": {
"nursery": {
"useVueMultiWordComponentNames": {
"options": {
"ignores": [
"Foo"
]
}
}
}
}
}
}
<script>
export default {
name: "Foo"
};
</script>