sidebarDepth | pageClass |
---|---|
0 |
rule-list |
::: tip Legend
:wrench: Indicates that the rule is fixable, and using --fix
option on the command line can automatically fix some of the reported problems.
💡 Indicates that some problems reported by the rule are manually fixable by editor suggestions. :::
Mark indicating rule type:
⚠️ Possible Problems: These rules relate to possible logic errors in code.- 🔨 Suggestions: These rules suggest alternate ways of doing things.
- 💄 Layout & Formatting: These rules care about how the code looks rather than how it executes.
Rules in this category are enabled for all presets provided by eslint-plugin-vue.
Rule ID | Description | ||
---|---|---|---|
vue/comment-directive | support comment-directives in <template> |
||
vue/jsx-uses-vars | prevent variables used in JSX to be marked as unused |
- 3️⃣ Indicates that the rule is for Vue 3 and is included in all of
"plugin:vue/vue3-essential"
,*.configs["flat/essential"]
,"plugin:vue/vue3-strongly-recommended"
,*.configs["flat/strongly-recommended"]
,"plugin:vue/vue3-recommended"
and*.configs["flat/recommended"]
presets. - 2️⃣ Indicates that the rule is for Vue 2 and is included in all of
"plugin:vue/essential"
,*.configs["flat/vue2-essential"]
,"plugin:vue/strongly-recommended"
,*.configs["flat/vue2-strongly-recommended"]
and"plugin:vue/recommended"
,*.configs["flat/vue2-recommended"]
presets.
Rule ID | Description | ||
---|---|---|---|
vue/multi-word-component-names | require component names to be always multi-word | 3️⃣2️⃣🔨 | |
vue/no-arrow-functions-in-watch | disallow using arrow functions to define watcher | 3️⃣2️⃣ |
|
vue/no-async-in-computed-properties | disallow asynchronous actions in computed properties | 3️⃣2️⃣ |
|
vue/no-child-content | disallow element's child contents which would be overwritten by a directive like v-html or v-text |
💡 | 3️⃣2️⃣ |
vue/no-computed-properties-in-data | disallow accessing computed properties in data |
3️⃣2️⃣ |
|
vue/no-custom-modifiers-on-v-model | disallow custom modifiers on v-model used on the component | 2️⃣ |
|
vue/no-deprecated-data-object-declaration | disallow using deprecated object declaration on data (in Vue.js 3.0.0+) | 🔧 | 3️⃣ |
vue/no-deprecated-destroyed-lifecycle | disallow using deprecated destroyed and beforeDestroy lifecycle hooks (in Vue.js 3.0.0+) |
🔧 | 3️⃣ |
vue/no-deprecated-dollar-listeners-api | disallow using deprecated $listeners (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-dollar-scopedslots-api | disallow using deprecated $scopedSlots (in Vue.js 3.0.0+) |
🔧 | 3️⃣ |
vue/no-deprecated-events-api | disallow using deprecated events api (in Vue.js 3.0.0+) | 3️⃣ |
|
vue/no-deprecated-filter | disallow using deprecated filters syntax (in Vue.js 3.0.0+) | 3️⃣ |
|
vue/no-deprecated-functional-template | disallow using deprecated the functional template (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-html-element-is | disallow using deprecated the is attribute on HTML elements (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-inline-template | disallow using deprecated inline-template attribute (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-props-default-this | disallow deprecated this access in props default function (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-router-link-tag-prop | disallow using deprecated tag property on RouterLink (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-scope-attribute | disallow deprecated scope attribute (in Vue.js 2.5.0+) |
🔧 | 3️⃣🔨 |
vue/no-deprecated-slot-attribute | disallow deprecated slot attribute (in Vue.js 2.6.0+) |
🔧 | 3️⃣🔨 |
vue/no-deprecated-slot-scope-attribute | disallow deprecated slot-scope attribute (in Vue.js 2.6.0+) |
🔧 | 3️⃣🔨 |
vue/no-deprecated-v-bind-sync | disallow use of deprecated .sync modifier on v-bind directive (in Vue.js 3.0.0+) |
🔧 | 3️⃣ |
vue/no-deprecated-v-is | disallow deprecated v-is directive (in Vue.js 3.1.0+) |
3️⃣🔨 | |
vue/no-deprecated-v-on-native-modifier | disallow using deprecated .native modifiers (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-deprecated-v-on-number-modifiers | disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+) | 🔧 | 3️⃣ |
vue/no-deprecated-vue-config-keycodes | disallow using deprecated Vue.config.keyCodes (in Vue.js 3.0.0+) |
3️⃣ |
|
vue/no-dupe-keys | disallow duplication of field names | 3️⃣2️⃣ |
|
vue/no-dupe-v-else-if | disallow duplicate conditions in v-if / v-else-if chains |
3️⃣2️⃣ |
|
vue/no-duplicate-attributes | disallow duplication of attributes | 3️⃣2️⃣ |
|
vue/no-export-in-script-setup | disallow export in <script setup> |
3️⃣2️⃣ |
|
vue/no-expose-after-await | disallow asynchronously registered expose |
3️⃣ |
|
vue/no-lifecycle-after-await | disallow asynchronously registered lifecycle hooks | 3️⃣🔨 | |
vue/no-multiple-template-root | disallow adding multiple root nodes to the template | 2️⃣ |
|
vue/no-mutating-props | disallow mutation of component props | 3️⃣2️⃣🔨 | |
vue/no-parsing-error | disallow parsing errors in <template> |
3️⃣2️⃣ |
|
vue/no-ref-as-operand | disallow use of value wrapped by ref() (Composition API) as an operand |
🔧 | 3️⃣2️⃣🔨 |
vue/no-reserved-component-names | disallow the use of reserved names in component definitions | 3️⃣2️⃣🔨 | |
vue/no-reserved-keys | disallow overwriting reserved keys | 3️⃣2️⃣🔨 | |
vue/no-reserved-props | disallow reserved names in props | 3️⃣2️⃣ |
|
vue/no-shared-component-data | enforce component's data property to be a function | 🔧 | 3️⃣2️⃣ |
vue/no-side-effects-in-computed-properties | disallow side effects in computed properties | 3️⃣2️⃣ |
|
vue/no-template-key | disallow key attribute on <template> |
3️⃣2️⃣ |
|
vue/no-textarea-mustache | disallow mustaches in <textarea> |
3️⃣2️⃣ |
|
vue/no-unused-components | disallow registering components that are not used inside templates | 3️⃣2️⃣🔨 | |
vue/no-unused-vars | disallow unused variable definitions of v-for directives or scope attributes | 💡 | 3️⃣2️⃣🔨 |
vue/no-use-computed-property-like-method | disallow use computed property like method | 3️⃣2️⃣ |
|
vue/no-use-v-if-with-v-for | disallow using v-if on the same element as v-for |
3️⃣2️⃣🔨 | |
vue/no-useless-template-attributes | disallow useless attribute on <template> |
3️⃣2️⃣ |
|
vue/no-v-for-template-key-on-child | disallow key of <template v-for> placed on child elements |
3️⃣ |
|
vue/no-v-for-template-key | disallow key attribute on <template v-for> |
2️⃣ |
|
vue/no-v-model-argument | disallow adding an argument to v-model used in custom component |
2️⃣ |
|
vue/no-v-text-v-html-on-component | disallow v-text / v-html on component | 3️⃣2️⃣ |
|
vue/no-watch-after-await | disallow asynchronously registered watch |
3️⃣🔨 | |
vue/prefer-import-from-vue | enforce import from 'vue' instead of import from '@vue/*' | 🔧 | 3️⃣🔨 |
vue/require-component-is | require v-bind:is of <component> elements |
3️⃣2️⃣ |
|
vue/require-prop-type-constructor | require prop type to be a constructor | 🔧 | 3️⃣2️⃣🔨 |
vue/require-render-return | enforce render function to always return value | 3️⃣2️⃣ |
|
vue/require-slots-as-functions | enforce properties of $slots to be used as a function |
3️⃣ |
|
vue/require-toggle-inside-transition | require control the display of the content inside <transition> |
3️⃣ |
|
vue/require-v-for-key | require v-bind:key with v-for directives |
3️⃣2️⃣ |
|
vue/require-valid-default-prop | enforce props default values to be valid | 3️⃣2️⃣🔨 | |
vue/return-in-computed-property | enforce that a return statement is present in computed property | 3️⃣2️⃣ |
|
vue/return-in-emits-validator | enforce that a return statement is present in emits validator | 3️⃣2️⃣ |
|
vue/use-v-on-exact | enforce usage of exact modifier on v-on |
3️⃣2️⃣🔨 | |
vue/valid-attribute-name | require valid attribute names | 3️⃣2️⃣ |
|
vue/valid-define-emits | enforce valid defineEmits compiler macro |
3️⃣2️⃣ |
|
vue/valid-define-props | enforce valid defineProps compiler macro |
3️⃣2️⃣ |
|
vue/valid-model-definition | require valid keys in model option | 2️⃣ |
|
vue/valid-next-tick | enforce valid nextTick function calls |
🔧💡 | 3️⃣2️⃣ |
vue/valid-template-root | enforce valid template root | 3️⃣2️⃣ |
|
vue/valid-v-bind-sync | enforce valid .sync modifier on v-bind directives |
2️⃣ |
|
vue/valid-v-bind | enforce valid v-bind directives |
3️⃣2️⃣ |
|
vue/valid-v-cloak | enforce valid v-cloak directives |
3️⃣2️⃣ |
|
vue/valid-v-else-if | enforce valid v-else-if directives |
3️⃣2️⃣ |
|
vue/valid-v-else | enforce valid v-else directives |
3️⃣2️⃣ |
|
vue/valid-v-for | enforce valid v-for directives |
3️⃣2️⃣ |
|
vue/valid-v-html | enforce valid v-html directives |
3️⃣2️⃣ |
|
vue/valid-v-if | enforce valid v-if directives |
3️⃣2️⃣ |
|
vue/valid-v-is | enforce valid v-is directives |
3️⃣ |
|
vue/valid-v-memo | enforce valid v-memo directives |
3️⃣ |
|
vue/valid-v-model | enforce valid v-model directives |
3️⃣2️⃣ |
|
vue/valid-v-on | enforce valid v-on directives |
3️⃣2️⃣ |
|
vue/valid-v-once | enforce valid v-once directives |
3️⃣2️⃣ |
|
vue/valid-v-pre | enforce valid v-pre directives |
3️⃣2️⃣ |
|
vue/valid-v-show | enforce valid v-show directives |
3️⃣2️⃣ |
|
vue/valid-v-slot | enforce valid v-slot directives |
3️⃣2️⃣ |
|
vue/valid-v-text | enforce valid v-text directives |
3️⃣2️⃣ |
- 3️⃣ Indicates that the rule is for Vue 3 and is included in all of
"plugin:vue/vue3-strongly-recommended"
,*.configs["flat/strongly-recommended"]
,"plugin:vue/vue3-recommended"
and*.configs["flat/recommended"]
presets. - 2️⃣ Indicates that the rule is for Vue 2 and is included in
"plugin:vue/strongly-recommended"
,*.configs["flat/vue2-strongly-recommended"]
and"plugin:vue/recommended"
,*.configs["flat/vue2-recommended"]
presets.
Rule ID | Description | ||
---|---|---|---|
vue/attribute-hyphenation | enforce attribute naming style on custom components in template | 🔧 | 3️⃣2️⃣🔨 |
vue/component-definition-name-casing | enforce specific casing for component definition name | 🔧 | 3️⃣2️⃣🔨 |
vue/first-attribute-linebreak | enforce the location of first attribute | 🔧 | 3️⃣2️⃣💄 |
vue/html-closing-bracket-newline | require or disallow a line break before tag's closing brackets | 🔧 | 3️⃣2️⃣💄 |
vue/html-closing-bracket-spacing | require or disallow a space before tag's closing brackets | 🔧 | 3️⃣2️⃣💄 |
vue/html-end-tags | enforce end tag style | 🔧 | 3️⃣2️⃣🔨 |
vue/html-indent | enforce consistent indentation in <template> |
🔧 | 3️⃣2️⃣💄 |
vue/html-quotes | enforce quotes style of HTML attributes | 🔧 | 3️⃣2️⃣💄 |
vue/html-self-closing | enforce self-closing style | 🔧 | 3️⃣2️⃣💄 |
vue/max-attributes-per-line | enforce the maximum number of attributes per line | 🔧 | 3️⃣2️⃣💄 |
vue/multiline-html-element-content-newline | require a line break before and after the contents of a multiline element | 🔧 | 3️⃣2️⃣💄 |
vue/mustache-interpolation-spacing | enforce unified spacing in mustache interpolations | 🔧 | 3️⃣2️⃣💄 |
vue/no-multi-spaces | disallow multiple spaces | 🔧 | 3️⃣2️⃣💄 |
vue/no-spaces-around-equal-signs-in-attribute | disallow spaces around equal signs in attribute | 🔧 | 3️⃣2️⃣💄 |
vue/no-template-shadow | disallow variable declarations from shadowing variables declared in the outer scope | 3️⃣2️⃣🔨 | |
vue/one-component-per-file | enforce that each component should be in its own file | 3️⃣2️⃣🔨 | |
vue/prop-name-casing | enforce specific casing for the Prop name in Vue components | 3️⃣2️⃣🔨 | |
vue/require-default-prop | require default value for props | 3️⃣2️⃣🔨 | |
vue/require-explicit-emits | require emits option with name triggered by $emit() |
💡 | 3️⃣🔨 |
vue/require-prop-types | require type definitions in props | 3️⃣2️⃣🔨 | |
vue/singleline-html-element-content-newline | require a line break before and after the contents of a singleline element | 🔧 | 3️⃣2️⃣💄 |
vue/v-bind-style | enforce v-bind directive style |
🔧 | 3️⃣2️⃣🔨 |
vue/v-on-event-hyphenation | enforce v-on event naming style on custom components in template | 🔧 | 3️⃣🔨 |
vue/v-on-style | enforce v-on directive style |
🔧 | 3️⃣2️⃣🔨 |
vue/v-slot-style | enforce v-slot directive style |
🔧 | 3️⃣2️⃣🔨 |
- 3️⃣ Indicates that the rule is for Vue 3 and is included in
"plugin:vue/vue3-recommended"
and*.configs["flat/recommended"]
presets. - 2️⃣ Indicates that the rule is for Vue 2 and is included in
"plugin:vue/recommended"
,*.configs["flat/vue2-recommended"]
preset.
Rule ID | Description | ||
---|---|---|---|
vue/attributes-order | enforce order of attributes | 🔧 | 3️⃣2️⃣🔨 |
vue/component-tags-order | enforce order of component top-level elements | 🔧🚫 | 3️⃣2️⃣🔨 |
vue/no-lone-template | disallow unnecessary <template> |
3️⃣2️⃣ |
|
vue/no-multiple-slot-args | disallow to pass multiple arguments to scoped slots | 3️⃣2️⃣ |
|
vue/no-v-html | disallow use of v-html to prevent XSS attack | 3️⃣2️⃣🔨 | |
vue/order-in-components | enforce order of properties in components | 🔧💡 | 3️⃣2️⃣🔨 |
vue/this-in-template | disallow usage of this in template |
🔧 | 3️⃣2️⃣🔨 |
No preset enables the rules in this category. Please enable each rule if you want.
For example:
{
"rules": {
"vue/block-lang": "error"
}
}
Rule ID | Description | ||
---|---|---|---|
vue/block-lang | disallow use other than available lang |
🔨 | |
vue/block-order | enforce order of component top-level elements | 🔧 | 🔨 |
vue/block-tag-newline | enforce line breaks after opening and before closing block-level tags | 🔧 | 💄 |
vue/component-api-style | enforce component API style | 🔨 | |
vue/component-name-in-template-casing | enforce specific casing for the component naming style in template | 🔧 | 🔨 |
vue/component-options-name-casing | enforce the casing of component name in components options |
🔧💡 | 🔨 |
vue/custom-event-name-casing | enforce specific casing for custom event name | 🔨 | |
vue/define-emits-declaration | enforce declaration style of defineEmits |
🔨 | |
vue/define-macros-order | enforce order of compiler macros (defineProps , defineEmits , etc.) |
🔧💡 | 💄 |
vue/define-props-declaration | enforce declaration style of defineProps |
🔨 | |
vue/enforce-style-attribute | enforce or forbid the use of the scoped and module attributes in SFC top level style tags |
🔨 | |
vue/html-button-has-type | disallow usage of button without an explicit type attribute | 🔨 | |
vue/html-comment-content-newline | enforce unified line brake in HTML comments | 🔧 | 💄 |
vue/html-comment-content-spacing | enforce unified spacing in HTML comments | 🔧 | 💄 |
vue/html-comment-indent | enforce consistent indentation in HTML comments | 🔧 | 💄 |
vue/match-component-file-name | require component name property to match its file name | 💡 | 🔨 |
vue/match-component-import-name | require the registered component name to match the imported component name | ||
vue/max-lines-per-block | enforce maximum number of lines in Vue SFC blocks | ||
vue/max-props | enforce maximum number of props in Vue component | ||
vue/max-template-depth | enforce maximum depth of template | ||
vue/new-line-between-multi-line-property | enforce new lines between multi-line properties in Vue components | 🔧 | 💄 |
vue/next-tick-style | enforce Promise or callback style in nextTick |
🔧 | 🔨 |
vue/no-bare-strings-in-template | disallow the use of bare strings in <template> |
🔨 | |
vue/no-boolean-default | disallow boolean defaults | 🔨 | |
vue/no-deprecated-delete-set | disallow using deprecated $delete and $set (in Vue.js 3.0.0+) |
||
vue/no-deprecated-model-definition | disallow deprecated model definition (in Vue.js 3.0.0+) |
💡 | |
vue/no-duplicate-attr-inheritance | enforce inheritAttrs to be set to false when using v-bind="$attrs" |
🔨 | |
vue/no-empty-component-block | disallow the <template> <script> <style> block to be empty |
🔧 | 🔨 |
vue/no-multiple-objects-in-class | disallow to pass multiple objects into array to class | 🔨 | |
vue/no-potential-component-option-typo | disallow a potential typo in your component property | 💡 | 🔨 |
vue/no-ref-object-reactivity-loss | disallow usages of ref objects that can lead to loss of reactivity | ||
vue/no-required-prop-with-default | enforce props with default values to be optional | 🔧💡 | |
vue/no-restricted-block | disallow specific block | 🔨 | |
vue/no-restricted-call-after-await | disallow asynchronously called restricted methods | 🔨 | |
vue/no-restricted-class | disallow specific classes in Vue components | ||
vue/no-restricted-component-names | disallow specific component names | 💡 | 🔨 |
vue/no-restricted-component-options | disallow specific component option | 🔨 | |
vue/no-restricted-custom-event | disallow specific custom event | 💡 | 🔨 |
vue/no-restricted-html-elements | disallow specific HTML elements | 🔨 | |
vue/no-restricted-props | disallow specific props | 💡 | 🔨 |
vue/no-restricted-static-attribute | disallow specific attribute | 🔨 | |
vue/no-restricted-v-bind | disallow specific argument in v-bind |
🔨 | |
vue/no-restricted-v-on | disallow specific argument in v-on |
🔨 | |
vue/no-root-v-if | disallow v-if directives on root element |
🔨 | |
vue/no-setup-props-reactivity-loss | disallow usages that lose the reactivity of props passed to setup |
🔨 | |
vue/no-static-inline-styles | disallow static inline style attributes |
🔨 | |
vue/no-template-target-blank | disallow target="_blank" attribute without rel="noopener noreferrer" | 💡 | |
vue/no-this-in-before-route-enter | disallow this usage in a beforeRouteEnter method |
||
vue/no-undef-components | disallow use of undefined components in <template> |
🔨 | |
vue/no-undef-properties | disallow undefined properties | 🔨 | |
vue/no-unsupported-features | disallow unsupported Vue.js syntax on the specified version | 🔧 | 🔨 |
vue/no-unused-emit-declarations | disallow unused emit declarations | 🔨 | |
vue/no-unused-properties | disallow unused properties | 🔨 | |
vue/no-unused-refs | disallow unused refs | 🔨 | |
vue/no-use-v-else-with-v-for | disallow using v-else-if /v-else on the same element as v-for |
🔨 | |
vue/no-useless-mustaches | disallow unnecessary mustache interpolations | 🔧 | 🔨 |
vue/no-useless-v-bind | disallow unnecessary v-bind directives |
🔧 | 🔨 |
vue/no-v-text | disallow use of v-text | 🔨 | |
vue/padding-line-between-blocks | require or disallow padding lines between blocks | 🔧 | 💄 |
vue/padding-line-between-tags | require or disallow newlines between sibling tags in template | 🔧 | 💄 |
vue/padding-lines-in-component-definition | require or disallow padding lines in component definition | 🔧 | 💄 |
vue/prefer-define-options | enforce use of defineOptions instead of default export |
🔧 | 🔨 |
vue/prefer-prop-type-boolean-first | enforce Boolean comes first in component prop types |
💡 | |
vue/prefer-separate-static-class | require static class names in template to be in a separate class attribute |
🔧 | 🔨 |
vue/prefer-true-attribute-shorthand | require shorthand form attribute when v-bind value is true |
💡 | 🔨 |
vue/prefer-use-template-ref | require using useTemplateRef instead of ref /shallowRef for template refs |
🔧 | 🔨 |
vue/require-default-export | require components to be the default export | ||
vue/require-direct-export | require the component to be directly exported | 🔨 | |
vue/require-emit-validator | require type definitions in emits | 💡 | 🔨 |
vue/require-explicit-slots | require slots to be explicitly defined | ||
vue/require-expose | require declare public properties using expose |
💡 | 🔨 |
vue/require-macro-variable-name | require a certain macro variable name | 💡 | 🔨 |
vue/require-name-property | require a name property in Vue components | 💡 | 🔨 |
vue/require-prop-comment | require props to have a comment | 🔨 | |
vue/require-typed-object-prop | enforce adding type declarations to object props | 💡 | 🔨 |
vue/require-typed-ref | require ref and shallowRef functions to be strongly typed |
🔨 | |
vue/restricted-component-names | enforce using only specific component names | ||
vue/script-indent | enforce consistent indentation in <script> |
🔧 | 💄 |
vue/slot-name-casing | enforce specific casing for slot names | 🔨 | |
vue/sort-keys | enforce sort-keys in a manner that is compatible with order-in-components | 🔨 | |
vue/static-class-names-order | enforce static class names order | 🔧 | 🔨 |
vue/v-for-delimiter-style | enforce v-for directive's delimiter style |
🔧 | 💄 |
vue/v-if-else-key | require key attribute for conditionally rendered repeated components | 🔧 | |
vue/v-on-handler-style | enforce writing style for handlers in v-on directives |
🔧 | 🔨 |
vue/valid-define-options | enforce valid defineOptions compiler macro |
The following rules extend the rules provided by ESLint itself and apply them to the expressions in the <template>
.
Rule ID | Description | ||
---|---|---|---|
vue/array-bracket-newline | Enforce linebreaks after opening and before closing array brackets in <template> |
🔧 | 💄 |
vue/array-bracket-spacing | Enforce consistent spacing inside array brackets in <template> |
🔧 | 💄 |
vue/array-element-newline | Enforce line breaks after each array element in <template> |
🔧 | 💄 |
vue/arrow-spacing | Enforce consistent spacing before and after the arrow in arrow functions in <template> |
🔧 | 💄 |
vue/block-spacing | Disallow or enforce spaces inside of blocks after opening block and before closing block in <template> |
🔧 | 💄 |
vue/brace-style | Enforce consistent brace style for blocks in <template> |
🔧 | 💄 |
vue/camelcase | Enforce camelcase naming convention in <template> |
🔨 | |
vue/comma-dangle | Require or disallow trailing commas in <template> |
🔧 | 💄 |
vue/comma-spacing | Enforce consistent spacing before and after commas in <template> |
🔧 | 💄 |
vue/comma-style | Enforce consistent comma style in <template> |
🔧 | 💄 |
vue/dot-location | Enforce consistent newlines before and after dots in <template> |
🔧 | 💄 |
vue/dot-notation | Enforce dot notation whenever possible in <template> |
🔧 | 🔨 |
vue/eqeqeq | Require the use of === and !== in <template> |
🔧 | 🔨 |
vue/func-call-spacing | Require or disallow spacing between function identifiers and their invocations in <template> |
🔧 | 💄 |
vue/key-spacing | Enforce consistent spacing between property names and type annotations in types and interfaces in <template> |
🔧 | 💄 |
vue/keyword-spacing | Enforce consistent spacing before and after keywords in <template> |
🔧 | 💄 |
vue/max-len | enforce a maximum line length in .vue files |
💄 | |
vue/multiline-ternary | Enforce newlines between operands of ternary expressions in <template> |
🔧 | 💄 |
vue/no-console | Disallow the use of console in <template> |
💡 | 🔨 |
vue/no-constant-condition | Disallow constant expressions in conditions in <template> |
||
vue/no-empty-pattern | Disallow empty destructuring patterns in <template> |
||
vue/no-extra-parens | Disallow unnecessary parentheses in <template> |
🔧 | 💄 |
vue/no-irregular-whitespace | disallow irregular whitespace in .vue files |
||
vue/no-loss-of-precision | Disallow literal numbers that lose precision in <template> |
||
vue/no-restricted-syntax | Disallow specified syntax in <template> |
🔨 | |
vue/no-sparse-arrays | Disallow sparse arrays in <template> |
||
vue/no-useless-concat | Disallow unnecessary concatenation of literals or template literals in <template> |
🔨 | |
vue/object-curly-newline | Enforce consistent line breaks after opening and before closing braces in <template> |
🔧 | 💄 |
vue/object-curly-spacing | Enforce consistent spacing inside braces in <template> |
🔧 | 💄 |
vue/object-property-newline | Enforce placing object properties on separate lines in <template> |
🔧 | 💄 |
vue/object-shorthand | Require or disallow method and property shorthand syntax for object literals in <template> |
🔧 | 🔨 |
vue/operator-linebreak | Enforce consistent linebreak style for operators in <template> |
🔧 | 💄 |
vue/prefer-template | Require template literals instead of string concatenation in <template> |
🔧 | 🔨 |
vue/quote-props | Require quotes around object literal, type literal, interfaces and enums property names in <template> |
🔧 | 💄 |
vue/space-in-parens | Enforce consistent spacing inside parentheses in <template> |
🔧 | 💄 |
vue/space-infix-ops | Require spacing around infix operators in <template> |
🔧 | 💄 |
vue/space-unary-ops | Enforce consistent spacing before or after unary operators in <template> |
🔧 | 💄 |
vue/template-curly-spacing | Require or disallow spacing around embedded expressions of template strings in <template> |
🔧 | 💄 |
- 🚫 We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
- 😇 We don't fix bugs which are in deprecated rules since we don't have enough resources.
- ⛔ These rules have been removed in a previous major release, after they have been deprecated for a while.
Rule ID | Replaced by | Deprecated in version | Removed in version |
---|---|---|---|
vue/experimental-script-setup-vars | (no replacement) | v7.13.0 | v9.0.0 |
vue/name-property-casing | vue/component-definition-name-casing | v7.0.0 | v9.0.0 |
vue/no-confusing-v-for-v-if | vue/no-use-v-if-with-v-for | v5.0.0 | v9.0.0 |
vue/no-unregistered-components | vue/no-undef-components | v8.4.0 | v9.0.0 |