# Eslint Plugin Vue > If you think you’ve found a bug in ESLint, please [create a new issue](https://github.com/vuejs/eslint-plugin-vue/issues/new?labels=&template=bug_report.md) or a pull request on GitHub. ## Pages - [Developer Guide](developer-guide.md): Contributing is welcome. - [Introduction](index.md): Official ESLint plugin for Vue.js. - [vue/array-bracket-newline](rules-array-bracket-newline.md): Enforce linebreaks after opening and before closing array brackets in`` - [vue/array-bracket-spacing](rules-array-bracket-spacing.md): Enforce consistent spacing inside array brackets in`` - [vue/array-element-newline](rules-array-element-newline.md): Enforce line breaks after each array element in`` - [vue/arrow-spacing](rules-arrow-spacing.md): Enforce consistent spacing before and after the arrow in arrow functions in`` - [vue/attribute-hyphenation](rules-attribute-hyphenation.md): enforce attribute naming style on custom components in template - [vue/attributes-order](rules-attributes-order.md): enforce order of attributes - [vue/block-lang](rules-block-lang.md): disallow use other than available`lang` - [vue/block-order](rules-block-order.md): enforce order of component top-level elements - [vue/block-spacing](rules-block-spacing.md): Disallow or enforce spaces inside of blocks after opening block and before closing block in`` - [vue/block-tag-newline](rules-block-tag-newline.md): enforce line breaks after opening and before closing block-level tags - [vue/brace-style](rules-brace-style.md): Enforce consistent brace style for blocks in`` - [vue/camelcase](rules-camelcase.md): Enforce camelcase naming convention in`` - [vue/comma-dangle](rules-comma-dangle.md): Require or disallow trailing commas in`` - [vue/comma-spacing](rules-comma-spacing.md): Enforce consistent spacing before and after commas in`` - [vue/comma-style](rules-comma-style.md): Enforce consistent comma style in`` - [vue/comment-directive](rules-comment-directive.md): support comment-directives in`` - [vue/component-api-style](rules-component-api-style.md): enforce component API style - [vue/component-definition-name-casing](rules-component-definition-name-casing.md): enforce specific casing for component definition name - [vue/component-name-in-template-casing](rules-component-name-in-template-casing.md): enforce specific casing for the component naming style in template - [vue/component-options-name-casing](rules-component-options-name-casing.md): enforce the casing of component name in`components`options - [vue/component-tags-order](rules-component-tags-order.md): enforce order of component top-level elements - [vue/custom-event-name-casing](rules-custom-event-name-casing.md): enforce specific casing for custom event name - [vue/define-emits-declaration](rules-define-emits-declaration.md): enforce declaration style of`defineEmits` - [vue/define-macros-order](rules-define-macros-order.md): enforce order of compiler macros (`defineProps`,`defineEmits`, etc.) - [vue/define-props-declaration](rules-define-props-declaration.md): enforce declaration style of`defineProps` - [vue/define-props-destructuring](rules-define-props-destructuring.md): enforce consistent style for props destructuring - [vue/dot-location](rules-dot-location.md): Enforce consistent newlines before and after dots in`` - [vue/dot-notation](rules-dot-notation.md): Enforce dot notation whenever possible in`` - [vue/enforce-style-attribute](rules-enforce-style-attribute.md): enforce or forbid the use of the`scoped`and`module`attributes in SFC top level style tags - [vue/eqeqeq](rules-eqeqeq.md): Require the use of`===`and`!==`in`` - [vue/experimental-script-setup-vars](rules-experimental-script-setup-vars.md): prevent variables defined in``to be marked as undefined - [vue/first-attribute-linebreak](rules-first-attribute-linebreak.md): enforce the location of first attribute - [vue/func-call-spacing](rules-func-call-spacing.md): Require or disallow spacing between function identifiers and their invocations in`` - [vue/html-button-has-type](rules-html-button-has-type.md): disallow usage of button without an explicit type attribute - [vue/html-closing-bracket-newline](rules-html-closing-bracket-newline.md): require or disallow a line break before tag's closing brackets - [vue/html-closing-bracket-spacing](rules-html-closing-bracket-spacing.md): require or disallow a space before tag's closing brackets - [vue/html-comment-content-newline](rules-html-comment-content-newline.md): enforce unified line break in HTML comments - [vue/html-comment-content-spacing](rules-html-comment-content-spacing.md): enforce unified spacing in HTML comments - [vue/html-comment-indent](rules-html-comment-indent.md): enforce consistent indentation in HTML comments - [vue/html-end-tags](rules-html-end-tags.md): enforce end tag style - [vue/html-indent](rules-html-indent.md): enforce consistent indentation in`` - [vue/html-quotes](rules-html-quotes.md): enforce quotes style of HTML attributes - [vue/html-self-closing](rules-html-self-closing.md): enforce self-closing style - [Available rules](rules.md): ::: tip Legend - [vue/jsx-uses-vars](rules-jsx-uses-vars.md): prevent variables used in JSX to be marked as unused - [vue/key-spacing](rules-key-spacing.md): Enforce consistent spacing between property names and type annotations in types and interfaces in`` - [vue/keyword-spacing](rules-keyword-spacing.md): Enforce consistent spacing before and after keywords in`` - [vue/match-component-file-name](rules-match-component-file-name.md): require component name property to match its file name - [vue/match-component-import-name](rules-match-component-import-name.md): require the registered component name to match the imported component name - [vue/max-attributes-per-line](rules-max-attributes-per-line.md): enforce the maximum number of attributes per line - [vue/max-len](rules-max-len.md): enforce a maximum line length in`.vue`files - [vue/max-lines-per-block](rules-max-lines-per-block.md): enforce maximum number of lines in Vue SFC blocks - [vue/max-props](rules-max-props.md): enforce maximum number of props in Vue component - [vue/max-template-depth](rules-max-template-depth.md): enforce maximum depth of template - [vue/multi-word-component-names](rules-multi-word-component-names.md): require component names to be always multi-word - [vue/multiline-html-element-content-newline](rules-multiline-html-element-content-newline.md): require a line break before and after the contents of a multiline element - [vue/multiline-ternary](rules-multiline-ternary.md): Enforce newlines between operands of ternary expressions in`` - [vue/mustache-interpolation-spacing](rules-mustache-interpolation-spacing.md): enforce unified spacing in mustache interpolations - [vue/name-property-casing](rules-name-property-casing.md): enforce specific casing for the name property in Vue components - [vue/new-line-between-multi-line-property](rules-new-line-between-multi-line-property.md): enforce new lines between multi-line properties in Vue components - [vue/next-tick-style](rules-next-tick-style.md): enforce Promise or callback style in`nextTick` - [vue/no-arrow-functions-in-watch](rules-no-arrow-functions-in-watch.md): disallow using arrow functions to define watcher - [vue/no-async-in-computed-properties](rules-no-async-in-computed-properties.md): disallow asynchronous actions in computed properties - [vue/no-bare-strings-in-template](rules-no-bare-strings-in-template.md): disallow the use of bare strings in`` - [vue/no-boolean-default](rules-no-boolean-default.md): disallow boolean defaults - [vue/no-child-content](rules-no-child-content.md): disallow element's child contents which would be overwritten by a directive like`v-html`or`v-text` - [vue/no-computed-properties-in-data](rules-no-computed-properties-in-data.md): disallow accessing computed properties in`data` - [vue/no-confusing-v-for-v-if](rules-no-confusing-v-for-v-if.md): disallow confusing`v-for`and`v-if`on the same element - [vue/no-console](rules-no-console.md): Disallow the use of`console`in`` - [vue/no-constant-condition](rules-no-constant-condition.md): Disallow constant expressions in conditions in`` - [vue/no-custom-modifiers-on-v-model](rules-no-custom-modifiers-on-v-model.md): disallow custom modifiers on v-model used on the component - [vue/no-deprecated-data-object-declaration](rules-no-deprecated-data-object-declaration.md): disallow using deprecated object declaration on data (in Vue.js 3.0.0+) - [vue/no-deprecated-delete-set](rules-no-deprecated-delete-set.md): disallow using deprecated`$delete`and`$set`(in Vue.js 3.0.0+) - [vue/no-deprecated-destroyed-lifecycle](rules-no-deprecated-destroyed-lifecycle.md): disallow using deprecated`destroyed`and`beforeDestroy`lifecycle hooks (in Vue.js 3.0.0+) - [vue/no-deprecated-dollar-listeners-api](rules-no-deprecated-dollar-listeners-api.md): disallow using deprecated`$listeners`(in Vue.js 3.0.0+) - [vue/no-deprecated-dollar-scopedslots-api](rules-no-deprecated-dollar-scopedslots-api.md): disallow using deprecated`$scopedSlots`(in Vue.js 3.0.0+) - [vue/no-deprecated-events-api](rules-no-deprecated-events-api.md): disallow using deprecated events api (in Vue.js 3.0.0+) - [vue/no-deprecated-filter](rules-no-deprecated-filter.md): disallow using deprecated filters syntax (in Vue.js 3.0.0+) - [vue/no-deprecated-functional-template](rules-no-deprecated-functional-template.md): disallow using deprecated the`functional`template (in Vue.js 3.0.0+) - [vue/no-deprecated-html-element-is](rules-no-deprecated-html-element-is.md): disallow using deprecated the`is`attribute on HTML elements (in Vue.js 3.0.0+) - [vue/no-deprecated-inline-template](rules-no-deprecated-inline-template.md): disallow using deprecated`inline-template`attribute (in Vue.js 3.0.0+) - [vue/no-deprecated-model-definition](rules-no-deprecated-model-definition.md): disallow deprecated`model`definition (in Vue.js 3.0.0+) - [vue/no-deprecated-props-default-this](rules-no-deprecated-props-default-this.md): disallow deprecated`this`access in props default function (in Vue.js 3.0.0+) - [vue/no-deprecated-router-link-tag-prop](rules-no-deprecated-router-link-tag-prop.md): disallow using deprecated`tag`property on`RouterLink`(in Vue.js 3.0.0+) - [vue/no-deprecated-scope-attribute](rules-no-deprecated-scope-attribute.md): disallow deprecated`scope`attribute (in Vue.js 2.5.0+) - [vue/no-deprecated-slot-attribute](rules-no-deprecated-slot-attribute.md): disallow deprecated`slot`attribute (in Vue.js 2.6.0+) - [vue/no-deprecated-slot-scope-attribute](rules-no-deprecated-slot-scope-attribute.md): disallow deprecated`slot-scope`attribute (in Vue.js 2.6.0+) - [vue/no-deprecated-v-bind-sync](rules-no-deprecated-v-bind-sync.md): disallow use of deprecated`.sync`modifier on`v-bind`directive (in Vue.js 3.0.0+) - [vue/no-deprecated-v-is](rules-no-deprecated-v-is.md): disallow deprecated`v-is`directive (in Vue.js 3.1.0+) - [vue/no-deprecated-v-on-native-modifier](rules-no-deprecated-v-on-native-modifier.md): disallow using deprecated`.native`modifiers (in Vue.js 3.0.0+) - [vue/no-deprecated-v-on-number-modifiers](rules-no-deprecated-v-on-number-modifiers.md): disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+) - [vue/no-deprecated-vue-config-keycodes](rules-no-deprecated-vue-config-keycodes.md): disallow using deprecated`Vue.config.keyCodes`(in Vue.js 3.0.0+) - [vue/no-dupe-keys](rules-no-dupe-keys.md): disallow duplication of field names - [vue/no-dupe-v-else-if](rules-no-dupe-v-else-if.md): disallow duplicate conditions in`v-if`/`v-else-if`chains - [vue/no-duplicate-attr-inheritance](rules-no-duplicate-attr-inheritance.md): enforce`inheritAttrs`to be set to`false`when using`v-bind="$attrs"` - [vue/no-duplicate-attributes](rules-no-duplicate-attributes.md): disallow duplication of attributes - [vue/no-duplicate-class-names](rules-no-duplicate-class-names.md): disallow duplication of class names in class attributes - [vue/no-empty-component-block](rules-no-empty-component-block.md): disallow the``````block to be empty - [vue/no-empty-pattern](rules-no-empty-pattern.md): Disallow empty destructuring patterns in`` - [vue/no-export-in-script-setup](rules-no-export-in-script-setup.md): disallow`export`in`` - [vue/no-expose-after-await](rules-no-expose-after-await.md): disallow asynchronously registered`expose` - [vue/no-extra-parens](rules-no-extra-parens.md): Disallow unnecessary parentheses in`` - [vue/no-implicit-coercion](rules-no-implicit-coercion.md): Disallow shorthand type conversions in`` - [vue/no-import-compiler-macros](rules-no-import-compiler-macros.md): disallow importing Vue compiler macros - [vue/no-invalid-model-keys](rules-no-invalid-model-keys.md): require valid keys in model option - [vue/no-irregular-whitespace](rules-no-irregular-whitespace.md): disallow irregular whitespace in`.vue`files - [vue/no-lifecycle-after-await](rules-no-lifecycle-after-await.md): disallow asynchronously registered lifecycle hooks - [vue/no-lone-template](rules-no-lone-template.md): disallow unnecessary`` - [vue/no-loss-of-precision](rules-no-loss-of-precision.md): Disallow literal numbers that lose precision in`` - [vue/no-multi-spaces](rules-no-multi-spaces.md): disallow multiple spaces - [vue/no-multiple-objects-in-class](rules-no-multiple-objects-in-class.md): disallow passing multiple objects in an array to class - [vue/no-multiple-slot-args](rules-no-multiple-slot-args.md): disallow passing multiple arguments to scoped slots - [vue/no-multiple-template-root](rules-no-multiple-template-root.md): disallow adding multiple root nodes to the template - [vue/no-mutating-props](rules-no-mutating-props.md): disallow mutation of component props - [vue/no-negated-condition](rules-no-negated-condition.md): Disallow negated conditions in`` - [vue/no-negated-v-if-condition](rules-no-negated-v-if-condition.md): disallow negated conditions in v-if/v-else - [vue/no-parsing-error](rules-no-parsing-error.md): disallow parsing errors in`` - [vue/no-potential-component-option-typo](rules-no-potential-component-option-typo.md): disallow a potential typo in your component property - [vue/no-ref-as-operand](rules-no-ref-as-operand.md): disallow use of value wrapped by`ref()`(Composition API) as an operand - [vue/no-ref-object-destructure](rules-no-ref-object-destructure.md): disallow usages of ref objects that can lead to loss of reactivity - [vue/no-ref-object-reactivity-loss](rules-no-ref-object-reactivity-loss.md): disallow usages of ref objects that can lead to loss of reactivity - [vue/no-required-prop-with-default](rules-no-required-prop-with-default.md): enforce props with default values to be optional - [vue/no-reserved-component-names](rules-no-reserved-component-names.md): disallow the use of reserved names in component definitions - [vue/no-reserved-keys](rules-no-reserved-keys.md): disallow overwriting reserved keys - [vue/no-reserved-props](rules-no-reserved-props.md): disallow reserved names in props - [vue/no-restricted-block](rules-no-restricted-block.md): disallow specific block - [vue/no-restricted-call-after-await](rules-no-restricted-call-after-await.md): disallow asynchronously called restricted methods - [vue/no-restricted-class](rules-no-restricted-class.md): disallow specific classes in Vue components - [vue/no-restricted-component-names](rules-no-restricted-component-names.md): disallow specific component names - [vue/no-restricted-component-options](rules-no-restricted-component-options.md): disallow specific component option - [vue/no-restricted-custom-event](rules-no-restricted-custom-event.md): disallow specific custom event - [vue/no-restricted-html-elements](rules-no-restricted-html-elements.md): disallow specific elements - [vue/no-restricted-props](rules-no-restricted-props.md): disallow specific props - [vue/no-restricted-static-attribute](rules-no-restricted-static-attribute.md): disallow specific attribute - [vue/no-restricted-syntax](rules-no-restricted-syntax.md): Disallow specified syntax in`` - [vue/no-restricted-v-bind](rules-no-restricted-v-bind.md): disallow specific argument in`v-bind` - [vue/no-restricted-v-on](rules-no-restricted-v-on.md): disallow specific argument in`v-on` - [vue/no-root-v-if](rules-no-root-v-if.md): disallow`v-if`directives on root element - [vue/no-setup-props-destructure](rules-no-setup-props-destructure.md): disallow usages that lose the reactivity of`props`passed to`setup` - [vue/no-setup-props-reactivity-loss](rules-no-setup-props-reactivity-loss.md): disallow usages that lose the reactivity of`props`passed to`setup` - [vue/no-shared-component-data](rules-no-shared-component-data.md): enforce component's data property to be a function - [vue/no-side-effects-in-computed-properties](rules-no-side-effects-in-computed-properties.md): disallow side effects in computed properties - [vue/no-spaces-around-equal-signs-in-attribute](rules-no-spaces-around-equal-signs-in-attribute.md): disallow spaces around equal signs in attribute - [vue/no-sparse-arrays](rules-no-sparse-arrays.md): Disallow sparse arrays in`` - [vue/no-static-inline-styles](rules-no-static-inline-styles.md): disallow static inline`style`attributes - [vue/no-template-key](rules-no-template-key.md): disallow`key`attribute on`` - [vue/no-template-shadow](rules-no-template-shadow.md): disallow variable declarations from shadowing variables declared in the outer scope - [vue/no-template-target-blank](rules-no-template-target-blank.md): disallow target="\_blank" attribute without rel="noopener noreferrer" - [vue/no-textarea-mustache](rules-no-textarea-mustache.md): disallow mustaches in`` - [vue/no-this-in-before-route-enter](rules-no-this-in-before-route-enter.md): disallow`this`usage in a`beforeRouteEnter`method - [vue/no-undef-components](rules-no-undef-components.md): disallow use of undefined components in`` - [vue/no-undef-directives](rules-no-undef-directives.md): disallow use of undefined custom directives - [vue/no-undef-properties](rules-no-undef-properties.md): disallow undefined properties - [vue/no-unregistered-components](rules-no-unregistered-components.md): disallow using components that are not registered inside templates - [vue/no-unsupported-features](rules-no-unsupported-features.md): disallow unsupported Vue.js syntax on the specified version - [vue/no-unused-components](rules-no-unused-components.md): disallow registering components that are not used inside templates - [vue/no-unused-emit-declarations](rules-no-unused-emit-declarations.md): disallow unused emit declarations - [vue/no-unused-properties](rules-no-unused-properties.md): disallow unused properties - [vue/no-unused-refs](rules-no-unused-refs.md): disallow unused refs - [vue/no-unused-vars](rules-no-unused-vars.md): disallow unused variable definitions of v-for directives or scope attributes - [vue/no-use-computed-property-like-method](rules-no-use-computed-property-like-method.md): disallow use computed property like method - [vue/no-use-v-else-with-v-for](rules-no-use-v-else-with-v-for.md): disallow using`v-else-if`/`v-else`on the same element as`v-for` - [vue/no-use-v-if-with-v-for](rules-no-use-v-if-with-v-for.md): disallow using`v-if`on the same element as`v-for` - [vue/no-useless-concat](rules-no-useless-concat.md): Disallow unnecessary concatenation of literals or template literals in`` - [vue/no-useless-mustaches](rules-no-useless-mustaches.md): disallow unnecessary mustache interpolations - [vue/no-useless-template-attributes](rules-no-useless-template-attributes.md): disallow useless attribute on`` - [vue/no-useless-v-bind](rules-no-useless-v-bind.md): disallow unnecessary`v-bind`directives - [vue/no-v-for-template-key-on-child](rules-no-v-for-template-key-on-child.md): disallow key of``placed on child elements - [vue/no-v-for-template-key](rules-no-v-for-template-key.md): disallow`key`attribute on`` - [vue/no-v-html](rules-no-v-html.md): disallow use of v-html to prevent XSS attack - [vue/no-v-model-argument](rules-no-v-model-argument.md): disallow adding an argument to`v-model`used in custom component - [vue/no-v-text-v-html-on-component](rules-no-v-text-v-html-on-component.md): disallow v-text / v-html on component - [vue/no-v-text](rules-no-v-text.md): disallow use of v-text - [vue/no-watch-after-await](rules-no-watch-after-await.md): disallow asynchronously registered`watch` - [vue/object-curly-newline](rules-object-curly-newline.md): Enforce consistent line breaks after opening and before closing braces in`` - [vue/object-curly-spacing](rules-object-curly-spacing.md): Enforce consistent spacing inside braces in`` - [vue/object-property-newline](rules-object-property-newline.md): Enforce placing object properties on separate lines in`` - [vue/object-shorthand](rules-object-shorthand.md): Require or disallow method and property shorthand syntax for object literals in`` - [vue/one-component-per-file](rules-one-component-per-file.md): enforce that each component should be in its own file - [vue/operator-linebreak](rules-operator-linebreak.md): Enforce consistent linebreak style for operators in`` - [vue/order-in-components](rules-order-in-components.md): enforce order of properties in components - [vue/padding-line-between-blocks](rules-padding-line-between-blocks.md): require or disallow padding lines between blocks - [vue/padding-line-between-tags](rules-padding-line-between-tags.md): require or disallow newlines between sibling tags in template - [vue/padding-lines-in-component-definition](rules-padding-lines-in-component-definition.md): require or disallow padding lines in component definition - [vue/prefer-define-options](rules-prefer-define-options.md): enforce use of`defineOptions`instead of default export - [vue/prefer-import-from-vue](rules-prefer-import-from-vue.md): enforce import from 'vue' instead of import from '@vue/\*' - [vue/prefer-prop-type-boolean-first](rules-prefer-prop-type-boolean-first.md): enforce`Boolean`comes first in component prop types - [vue/prefer-separate-static-class](rules-prefer-separate-static-class.md): require static class names in template to be in a separate`class`attribute - [vue/prefer-template](rules-prefer-template.md): Require template literals instead of string concatenation in`` - [vue/prefer-true-attribute-shorthand](rules-prefer-true-attribute-shorthand.md): require shorthand form attribute when`v-bind`value is`true` - [vue/prefer-use-template-ref](rules-prefer-use-template-ref.md): require using`useTemplateRef`instead of`ref`/`shallowRef`for template refs - [vue/prop-name-casing](rules-prop-name-casing.md): enforce specific casing for the Prop name in Vue components - [vue/quote-props](rules-quote-props.md): Require quotes around object literal, type literal, interfaces and enums property names in`` - [vue/require-component-is](rules-require-component-is.md): require`v-bind:is`of``elements - [vue/require-default-export](rules-require-default-export.md): require components to be the default export - [vue/require-default-prop](rules-require-default-prop.md): require default value for props - [vue/require-direct-export](rules-require-direct-export.md): require the component to be directly exported - [vue/require-emit-validator](rules-require-emit-validator.md): require type definitions in emits - [vue/require-explicit-emits](rules-require-explicit-emits.md): require`emits`option with name triggered by`$emit()` - [vue/require-explicit-slots](rules-require-explicit-slots.md): require slots to be explicitly defined - [vue/require-expose](rules-require-expose.md): require declare public properties using`expose` - [vue/require-macro-variable-name](rules-require-macro-variable-name.md): require a certain macro variable name - [vue/require-name-property](rules-require-name-property.md): require a name property in Vue components - [vue/require-prop-comment](rules-require-prop-comment.md): require props to have a comment - [vue/require-prop-type-constructor](rules-require-prop-type-constructor.md): require prop type to be a constructor - [vue/require-prop-types](rules-require-prop-types.md): require type definitions in props - [vue/require-render-return](rules-require-render-return.md): enforce render function to always return value - [vue/require-slots-as-functions](rules-require-slots-as-functions.md): enforce properties of`$slots`to be used as a function - [vue/require-toggle-inside-transition](rules-require-toggle-inside-transition.md): require control the display of the content inside`` - [vue/require-typed-object-prop](rules-require-typed-object-prop.md): enforce adding type declarations to object props - [vue/require-typed-ref](rules-require-typed-ref.md): require`ref`and`shallowRef`functions to be strongly typed - [vue/require-v-for-key](rules-require-v-for-key.md): require`v-bind:key`with`v-for`directives - [vue/require-valid-default-prop](rules-require-valid-default-prop.md): enforce props default values to be valid - [vue/restricted-component-names](rules-restricted-component-names.md): enforce using only specific component names - [vue/return-in-computed-property](rules-return-in-computed-property.md): enforce that a return statement is present in computed property - [vue/return-in-emits-validator](rules-return-in-emits-validator.md): enforce that a return statement is present in emits validator - [vue/script-indent](rules-script-indent.md): enforce consistent indentation in`` - [vue/script-setup-uses-vars](rules-script-setup-uses-vars.md): prevent``variables used in``to be marked as unused - [vue/singleline-html-element-content-newline](rules-singleline-html-element-content-newline.md): require a line break before and after the contents of a singleline element - [vue/slot-name-casing](rules-slot-name-casing.md): enforce specific casing for slot names - [vue/sort-keys](rules-sort-keys.md): enforce sort-keys in a manner that is compatible with order-in-components - [vue/space-in-parens](rules-space-in-parens.md): Enforce consistent spacing inside parentheses in`` - [vue/space-infix-ops](rules-space-infix-ops.md): Require spacing around infix operators in`` - [vue/space-unary-ops](rules-space-unary-ops.md): Enforce consistent spacing before or after unary operators in`` - [vue/static-class-names-order](rules-static-class-names-order.md): enforce static class names order - [vue/template-curly-spacing](rules-template-curly-spacing.md): Require or disallow spacing around embedded expressions of template strings in`` - [vue/this-in-template](rules-this-in-template.md): disallow usage of`this`in template - [vue/use-v-on-exact](rules-use-v-on-exact.md): enforce usage of`exact`modifier on`v-on` - [vue/v-bind-style](rules-v-bind-style.md): enforce`v-bind`directive style - [vue/v-for-delimiter-style](rules-v-for-delimiter-style.md): enforce`v-for`directive's delimiter style - [vue/v-if-else-key](rules-v-if-else-key.md): require key attribute for conditionally rendered repeated components - [vue/v-on-event-hyphenation](rules-v-on-event-hyphenation.md): enforce v-on event naming style on custom components in template - [vue/v-on-function-call](rules-v-on-function-call.md): enforce or forbid parentheses after method calls without arguments in`v-on`directives - [vue/v-on-handler-style](rules-v-on-handler-style.md): enforce writing style for handlers in`v-on`directives - [vue/v-on-style](rules-v-on-style.md): enforce`v-on`directive style - [vue/v-slot-style](rules-v-slot-style.md): enforce`v-slot`directive style - [vue/valid-attribute-name](rules-valid-attribute-name.md): require valid attribute names - [vue/valid-define-emits](rules-valid-define-emits.md): enforce valid`defineEmits`compiler macro - [vue/valid-define-options](rules-valid-define-options.md): enforce valid`defineOptions`compiler macro - [vue/valid-define-props](rules-valid-define-props.md): enforce valid`defineProps`compiler macro - [vue/valid-model-definition](rules-valid-model-definition.md): require valid keys in model option - [vue/valid-next-tick](rules-valid-next-tick.md): enforce valid`nextTick`function calls - [vue/valid-template-root](rules-valid-template-root.md): enforce valid template root - [vue/valid-v-bind-sync](rules-valid-v-bind-sync.md): enforce valid`.sync`modifier on`v-bind`directives - [vue/valid-v-bind](rules-valid-v-bind.md): enforce valid`v-bind`directives - [vue/valid-v-cloak](rules-valid-v-cloak.md): enforce valid`v-cloak`directives - [vue/valid-v-else-if](rules-valid-v-else-if.md): enforce valid`v-else-if`directives - [vue/valid-v-else](rules-valid-v-else.md): enforce valid`v-else`directives - [vue/valid-v-for](rules-valid-v-for.md): enforce valid`v-for`directives - [vue/valid-v-html](rules-valid-v-html.md): enforce valid`v-html`directives - [vue/valid-v-if](rules-valid-v-if.md): enforce valid`v-if`directives - [vue/valid-v-is](rules-valid-v-is.md): enforce valid`v-is`directives - [vue/valid-v-memo](rules-valid-v-memo.md): enforce valid`v-memo`directives - [vue/valid-v-model](rules-valid-v-model.md): enforce valid`v-model`directives - [vue/valid-v-on](rules-valid-v-on.md): enforce valid`v-on`directives - [vue/valid-v-once](rules-valid-v-once.md): enforce valid`v-once`directives - [vue/valid-v-pre](rules-valid-v-pre.md): enforce valid`v-pre`directives - [vue/valid-v-show](rules-valid-v-show.md): enforce valid`v-show`directives - [vue/valid-v-slot](rules-valid-v-slot.md): enforce valid`v-slot`directives - [vue/valid-v-text](rules-valid-v-text.md): enforce valid`v-text`directives - [User Guide](user-guide.md): Via [npm](https://www.npmjs.com/):