Skip to content
On this page


enforce specific casing for the component naming style in template

  • 🔧 The --fix option on the command line can automatically fix some of the problems reported by this rule.

Define a style for the component name in template casing for consistency purposes.

📖 Rule Details

This rule aims to warn the tag names other than the configured casing in Vue.js template.

🔧 Options

  "vue/component-name-in-template-casing": ["error", "PascalCase" | "kebab-case", {
    "registeredComponentsOnly": true,
    "ignores": []
  • "PascalCase" (default) ... enforce tag names to pascal case. E.g. <CoolComponent>. This is consistent with the JSX practice.
  • "kebab-case" ... enforce tag names to kebab case: E.g. <cool-component>. This is consistent with the HTML practice which is case-insensitive originally.
  • registeredComponentsOnly ... If true, only registered components (in PascalCase) are checked. If false, check all. default true
  • ignores (string[]) ... The element names to ignore. Sets the element name to allow. For example, custom elements or Vue components with special name. You can set the regexp by writing it like "/^name/".
  • globals (string[]) ... Globally registered component names to check. For example, RouterView and RouterLink are globally registered by vue-router and can't be detected as registered in a SFC file.

"PascalCase", { registeredComponentsOnly: true } (default)

Now loading...


Now loading...

"PascalCase", { registeredComponentsOnly: false }

Now loading...

"PascalCase", { ignores: ["/^custom-/"], registeredComponentsOnly: false }

Now loading...

"PascalCase", { globals: ["RouterView"] }

Now loading...

📚 Further Reading

🚀 Version

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

🔍 Implementation