JS.VUE.ARRAY.BRACKET.NEWLINE
|
Stylistic Issue |
Enforce linebreaks after opening and before closing array brackets |
3 |
False |
JS.VUE.ARRAY.BRACKET.SPACING
|
Stylistic Issue |
Enforce consistent spacing inside array brackets |
3 |
False |
JS.VUE.ARROW.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after the arrow in arrow functions |
3 |
False |
JS.VUE.ATTRIBUTE.HYPHENATION
|
Stylistic Issue |
Enforce attribute naming style on custom components in template |
3 |
False |
JS.VUE.ATTRIBUTES.ORDER
|
Stylistic Issue |
Enforce order of attributes |
3 |
False |
JS.VUE.BLOCK.LANG
|
Stylistic Issue |
Do not use languages other than those available in your application for the lang attribute of block elements |
3 |
False |
JS.VUE.BLOCK.SPACING
|
Stylistic Issue |
Disallow or enforce spaces inside of blocks after opening block and before closing block |
3 |
False |
JS.VUE.BLOCK.TAG.NEWLINE
|
Stylistic Issue |
Enforce line breaks after opening and before closing block-level tags |
3 |
False |
JS.VUE.BRACE.STYLE
|
Stylistic Issue |
Enforce consistent brace style for blocks |
3 |
False |
JS.VUE.CAMELCASE
|
Stylistic Issue |
Enforce camelcase naming convention |
3 |
False |
JS.VUE.COMMA.DANGLE
|
Stylistic Issue |
Require or disallow trailing commas |
3 |
False |
JS.VUE.COMMA.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after commas |
3 |
False |
JS.VUE.COMMA.STYLE
|
Stylistic Issue |
Enforce consistent comma style |
3 |
False |
JS.VUE.COMMENT.DIRECTIVE
|
Analysis Modifiers |
Support comment-directives in '<template>' |
3 |
True |
JS.VUE.COMPONENT.API.STYLE
|
Banned API |
API style you use should define Vue components consistent in your project |
3 |
False |
JS.VUE.COMPONENT.DEFINITION.NAME.CASING
|
Stylistic Issue |
Enforce specific casing for component definition name |
3 |
False |
JS.VUE.COMPONENT.NAME.IN.TEMPLATE.CASING
|
Stylistic Issue |
Enforce specific casing for the component naming style in template |
3 |
False |
JS.VUE.COMPONENT.OPTIONS.NAME.CASING
|
Suspicious Code Practices |
Enforce casing of the component names in `components` options |
3 |
False |
JS.VUE.COMPONENT.TAGS.ORDER
|
Stylistic Issue |
Enforce order of component top-level elements |
3 |
False |
JS.VUE.CUSTOM.EVENT.NAME.CASING
|
Stylistic Issue |
Enforce specific casing for custom event name |
3 |
False |
JS.VUE.DEFINE.MACROS.ORDER
|
Unsafe Code Practices |
Define compiler macros are not the first statements in `<script setup>` or they are not in the correct order |
3 |
False |
JS.VUE.DOT.LOCATION
|
Stylistic Issue |
Enforce consistent newlines before and after dots |
3 |
False |
JS.VUE.DOT.NOTATION
|
Stylistic Issue |
Enforce dot notation whenever possible |
3 |
False |
JS.VUE.EQEQEQ
|
Unsafe Code Practices |
Require the use of '===' and '!==' |
3 |
False |
JS.VUE.FIRST.ATTRIBUTE.LINEBREAK
|
Stylistic Issue |
Enforce a consistent location for the first attribute |
3 |
False |
JS.VUE.FUNC.CALL.SPACING
|
Stylistic Issue |
Require or disallow spacing between function identifiers and their invocations |
3 |
False |
JS.VUE.HTML.BUTTON.HAS.TYPE
|
Suspicious Code Practices |
Disallow usage of button without an explicit type attribute |
3 |
False |
JS.VUE.HTML.CLOSING.BRACKET.NEWLINE
|
Stylistic Issue |
Require or disallow a line break before tag's closing brackets |
3 |
False |
JS.VUE.HTML.CLOSING.BRACKET.SPACING
|
Stylistic Issue |
Require or disallow a space before tag's closing brackets |
3 |
False |
JS.VUE.HTML.COMMENT.CONTENT.NEWLINE
|
Stylistic Issue |
Enforce unified line brake in HTML comments |
3 |
False |
JS.VUE.HTML.COMMENT.CONTENT.SPACING
|
Stylistic Issue |
Enforce unified spacing in HTML comments |
3 |
False |
JS.VUE.HTML.COMMENT.INDENT
|
Stylistic Issue |
Enforce consistent indentation in HTML comments |
3 |
False |
JS.VUE.HTML.END.TAGS
|
Suspicious Code Practices |
Enforce end tag style |
3 |
False |
JS.VUE.HTML.INDENT
|
Stylistic Issue |
Enforce consistent indentation in '<template>' |
3 |
False |
JS.VUE.HTML.QUOTES
|
Stylistic Issue |
Enforce quotes style of HTML attributes |
3 |
False |
JS.VUE.HTML.SELF.CLOSING
|
Stylistic Issue |
Enforce self-closing style |
3 |
False |
JS.VUE.JSX.USES.VARS
|
Analysis Modifiers |
Prevent variables used in JSX to be marked as unused |
3 |
True |
JS.VUE.KEY.SPACING
|
Stylistic Issue |
Enforce consistent spacing between keys and values in object literal properties |
3 |
False |
JS.VUE.KEYWORD.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after keywords |
3 |
False |
JS.VUE.MATCH.COMPONENT.FILE.NAME
|
Suspicious Code Practices |
Require component name property to match its file name |
3 |
False |
JS.VUE.MATCH.COMPONENT.IMPORT.NAME
|
Stylistic Issue |
Imported name does not match the name of the components |
3 |
False |
JS.VUE.MAX.ATTRIBUTES.PER.LINE
|
Stylistic Issue |
Enforce the maximum number of attributes per line |
3 |
False |
JS.VUE.MAX.LEN
|
Stylistic Issue |
Enforce a maximum line length |
3 |
False |
JS.VUE.MULTILINE.HTML.ELEMENT.CONTENT.NEWLINE
|
Stylistic Issue |
Require a line break before and after the contents of a multiline element |
3 |
False |
JS.VUE.MULTI.WORD.COMPONENT.NAMES
|
Stylistic Issue |
Ensure component names to be multi-word |
3 |
False |
JS.VUE.MUSTACHE.INTERPOLATION.SPACING
|
Stylistic Issue |
Enforce unified spacing in mustache interpolations |
3 |
False |
JS.VUE.NEW.LINE.BETWEEN.MULTI.LINE.PROPERTY
|
Stylistic Issue |
Enforce new lines between multi-line properties in Vue components |
3 |
False |
JS.VUE.NEXT.TICK.STYLE
|
Concurrency |
Enforce Promise or callback style in 'nextTick' |
3 |
False |
JS.VUE.NO.ARROW.FUNCTIONS.IN.WATCH
|
Suspicious Code Practices |
Disallow using arrow functions to define watcher |
3 |
True |
JS.VUE.NO.ASYNC.IN.COMPUTED.PROPERTIES
|
Concurrency |
Disallow asynchronous actions in computed properties |
3 |
True |
JS.VUE.NO.BARE.STRINGS.IN.TEMPLATE
|
Documentation |
Disallow the use of bare strings in '<template>' |
3 |
False |
JS.VUE.NO.BOOLEAN.DEFAULT
|
Suspicious Code Practices |
Disallow boolean defaults |
3 |
False |
JS.VUE.NO.CHILD.CONTENT
|
Unsafe Code Practices |
No child content of element |
3 |
False |
JS.VUE.NO.COMPUTED.PROPERTIES.IN.DATA
|
Unsafe Code Practices |
The computed property cannot be accessed in `data()` before initialization |
3 |
False |
JS.VUE.NO.CONSTANT.CONDITION
|
Stylistic Issue |
Disallow constant expressions in conditions |
3 |
False |
JS.VUE.NO.CUSTOM.MODIFIERS.ON.V.MODEL
|
Suspicious Code Practices |
Disallow custom modifiers on v-model used on the component |
3 |
True |
JS.VUE.NO.DEPRECATED.DATA.OBJECT.DECLARATION
|
Improper Encapsulation |
Disallow using deprecated object declaration on data (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.DESTROYED.LIFECYCLE
|
Banned API |
Disallow using deprecated 'destroyed' and 'beforeDestroy' lifecycle hooks (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.DOLLAR.LISTENERS.API
|
Banned API |
Disallow using deprecated '$listeners' (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.DOLLAR.SCOPEDSLOTS.API
|
Banned API |
Disallow using deprecated '$scopedSlots' (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.EVENTS.API
|
Banned API |
Disallow using deprecated events api (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.FILTER
|
Suspicious Code Practices |
Disallow using deprecated filters syntax (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.FUNCTIONAL.TEMPLATE
|
Suspicious Code Practices |
Disallow using deprecated the 'functional' template (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.HTML.ELEMENT.IS
|
Suspicious Code Practices |
Disallow using deprecated the 'is' attribute on HTML elements (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.INLINE.TEMPLATE
|
Suspicious Code Practices |
Disallow using deprecated 'inline-template' attribute (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.PROPS.DEFAULT.THIS
|
Improper Encapsulation |
Disallow props default function 'this' access |
3 |
True |
JS.VUE.NO.DEPRECATED.ROUTER.LINK.TAG.PROP
|
Banned Code |
Deprecated the `tag` attribute on `RouterLink` elements |
3 |
False |
JS.VUE.NO.DEPRECATED.SCOPE.ATTRIBUTE
|
Suspicious Code Practices |
Disallow deprecated 'scope' attribute (in Vue.js 2.5.0+) |
3 |
False |
JS.VUE.NO.DEPRECATED.SLOT.ATTRIBUTE
|
Suspicious Code Practices |
Disallow deprecated 'slot' attribute (in Vue.js 2.6.0+) |
3 |
False |
JS.VUE.NO.DEPRECATED.SLOT.SCOPE.ATTRIBUTE
|
Suspicious Code Practices |
Disallow deprecated 'slot-scope' attribute (in Vue.js 2.6.0+) |
3 |
False |
JS.VUE.NO.DEPRECATED.V.BIND.SYNC
|
Suspicious Code Practices |
Disallow use of deprecated '.sync' modifier on 'v-bind' directive (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.V.IS
|
Banned Code |
Deprecated `v-is` |
3 |
False |
JS.VUE.NO.DEPRECATED.V.ON.NATIVE.MODIFIER
|
Suspicious Code Practices |
Disallow using deprecated '.native' modifiers (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.V.ON.NUMBER.MODIFIERS
|
Suspicious Code Practices |
Disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DEPRECATED.VUE.CONFIG.KEYCODES
|
Banned API |
Disallow using deprecated 'Vue.config.keyCodes' (in Vue.js 3.0.0+) |
3 |
True |
JS.VUE.NO.DUPE.KEYS
|
Suspicious Code Practices |
Disallow duplication of field names |
3 |
True |
JS.VUE.NO.DUPE.V.ELSE.IF
|
Unreachable Code |
Disallow duplicate conditions in 'v-if' / 'v-else-if' chains |
3 |
True |
JS.VUE.NO.DUPLICATE.ATTRIBUTES
|
Suspicious Code Practices |
Disallow duplication of attributes |
3 |
True |
JS.VUE.NO.DUPLICATE.ATTR.INHERITANCE
|
Improper Encapsulation |
Enforce 'inheritAttrs' to be set to 'false' when using 'v-bind="$attrs"' |
3 |
False |
JS.VUE.NO.EMPTY.COMPONENT.BLOCK
|
Suspicious Code Practices |
Disallow the '<template>' '<script>' '<style>' block to be empty |
3 |
False |
JS.VUE.NO.EMPTY.PATTERN
|
Suspicious Code Practices |
Disallow empty destructuring patterns |
3 |
False |
JS.VUE.NO.EXPORT.IN.SCRIPT.SETUP
|
Stylistic Issue |
ES module exports in `<script setup>` |
3 |
False |
JS.VUE.NO.EXPOSE.AFTER.AWAIT
|
Unsafe Code Practices |
Usages of `expose()` and `defineExpose()` after an `await` expression |
3 |
False |
JS.VUE.NO.EXTRA.PARENS
|
Stylistic Issue |
Disallow unnecessary parentheses |
3 |
False |
JS.VUE.NO.IRREGULAR.WHITESPACE
|
Stylistic Issue |
Disallow irregular whitespace |
3 |
True |
JS.VUE.NO.LIFECYCLE.AFTER.AWAIT
|
Concurrency |
Disallow asynchronously registered lifecycle hooks |
3 |
False |
JS.VUE.NO.LONE.TEMPLATE
|
Suspicious Code Practices |
Disallow unnecessary '<template>' |
3 |
True |
JS.VUE.NO.LOSS.OF.PRECISION
|
Suspicious Code Practices |
Disallow literal numbers that lose precision |
3 |
False |
JS.VUE.NO.MULTIPLE.OBJECTS.IN.CLASS
|
Suspicious Code Practices |
Disallow to pass multiple objects into array to class |
3 |
False |
JS.VUE.NO.MULTIPLE.SLOT.ARGS
|
Suspicious Code Practices |
Disallow to pass multiple arguments to scoped slots |
3 |
True |
JS.VUE.NO.MULTIPLE.TEMPLATE.ROOT
|
Suspicious Code Practices |
Disallow adding multiple root nodes to the template |
3 |
True |
JS.VUE.NO.MULTI.SPACES
|
Stylistic Issue |
Disallow multiple spaces |
3 |
False |
JS.VUE.NO.MUTATING.PROPS
|
Improper Encapsulation |
Disallow mutation of component props |
3 |
False |
JS.VUE.NO.PARSING.ERROR
|
Suspicious Code Practices |
Disallow parsing errors in '<template>' |
3 |
True |
JS.VUE.NO.POTENTIAL.COMPONENT.OPTION.TYPO
|
Suspicious Code Practices |
Disallow a potential typo in your component property |
3 |
False |
JS.VUE.NO.REF.AS.OPERAND
|
Suspicious Code Practices |
Disallow use of value wrapped by 'ref()' (Composition API) as an operand |
3 |
False |
JS.VUE.NO.RESERVED.COMPONENT.NAMES
|
Suspicious Code Practices |
Disallow the use of reserved names in component definitions |
3 |
False |
JS.VUE.NO.RESERVED.KEYS
|
Banned Code |
Disallow overwriting reserved keys |
2 |
False |
JS.VUE.NO.RESERVED.PROPS
|
Unsafe Code Practices |
Reserved name used in props |
3 |
False |
JS.VUE.NO.RESTRICTED.BLOCK
|
Banned Code |
Disallow specific block |
2 |
False |
JS.VUE.NO.RESTRICTED.CALL.AFTER.AWAIT
|
Concurrency |
Disallow asynchronously called restricted methods |
3 |
False |
JS.VUE.NO.RESTRICTED.CLASS
|
Improper Encapsulation |
Restricted class in the template |
3 |
False |
JS.VUE.NO.RESTRICTED.COMPONENT.OPTIONS
|
Banned Code |
Disallow specific component option |
2 |
False |
JS.VUE.NO.RESTRICTED.CUSTOM.EVENT
|
Banned Code |
Disallow specific custom event |
2 |
False |
JS.VUE.NO.RESTRICTED.HTML.ELEMENTS
|
Banned Code |
Unwanted HTML element in application |
3 |
False |
JS.VUE.NO.RESTRICTED.PROPS
|
Banned Code |
Disallow specific props |
2 |
False |
JS.VUE.NO.RESTRICTED.STATIC.ATTRIBUTE
|
Banned Code |
Disallow specific attribute |
2 |
False |
JS.VUE.NO.RESTRICTED.SYNTAX
|
Stylistic Issue |
Disallow specified syntax |
3 |
False |
JS.VUE.NO.RESTRICTED.V.BIND
|
Banned Code |
Disallow specific argument in 'v-bind' |
2 |
False |
JS.VUE.NO.SETUP.PROPS.DESTRUCTURE
|
Improper Encapsulation |
Disallow destructuring of 'props' passed to 'setup' |
3 |
False |
JS.VUE.NO.SHARED.COMPONENT.DATA
|
Improper Encapsulation |
Enforce component's data property to be a function |
3 |
True |
JS.VUE.NO.SIDE.EFFECTS.IN.COMPUTED.PROPERTIES
|
Improper Encapsulation |
Disallow side effects in computed properties |
3 |
True |
JS.VUE.NO.SPACES.AROUND.EQUAL.SIGNS.IN.ATTRIBUTE
|
Stylistic Issue |
Disallow spaces around equal signs in attribute |
3 |
False |
JS.VUE.NO.SPARSE.ARRAYS
|
Unsafe Code Practices |
Disallow sparse arrays |
3 |
False |
JS.VUE.NO.STATIC.INLINE.STYLES
|
Stylistic Issue |
Disallow static inline 'style' attributes |
3 |
False |
JS.VUE.NO.TEMPLATE.KEY
|
Suspicious Code Practices |
Disallow 'key' attribute on '<template>' |
3 |
True |
JS.VUE.NO.TEMPLATE.SHADOW
|
Suspicious Code Practices |
Disallow variable declarations from shadowing variables declared in the outer scope |
3 |
False |
JS.VUE.NO.TEMPLATE.TARGET.BLANK
|
Unsafe Code Practices |
Disallow target="_blank" attribute without rel="noopener noreferrer" |
2 |
True |
JS.VUE.NO.TEXTAREA.MUSTACHE
|
Suspicious Code Practices |
Disallow mustaches in '<textarea>' |
3 |
True |
JS.VUE.NO.THIS.IN.BEFORE.ROUTE.ENTER
|
Unsafe Code Practices |
Should be no `this` in the `beforeRouteEnter` |
3 |
False |
JS.VUE.NO.UNDEF.COMPONENTS
|
Unreachable Code |
Undefined component |
3 |
False |
JS.VUE.NO.UNDEF.PROPERTIES
|
Unreachable Code |
Udefined properties used |
3 |
False |
JS.VUE.NO.UNSUPPORTED.FEATURES
|
Suspicious Code Practices |
Disallow unsupported Vue.js syntax on the specified version |
3 |
False |
JS.VUE.NO.UNUSED.COMPONENTS
|
Unused Code |
Disallow registering components that are not used inside templates |
3 |
False |
JS.VUE.NO.UNUSED.PROPERTIES
|
Unused Code |
Disallow unused properties |
3 |
False |
JS.VUE.NO.UNUSED.REFS
|
Unused Code |
Disallow unused refs |
3 |
False |
JS.VUE.NO.UNUSED.VARS
|
Unused Code |
Disallow unused variable definitions of v-for directives or scope attributes |
3 |
False |
JS.VUE.NO.USE.COMPUTED.PROPERTY.LIKE.METHOD
|
Unsafe Code Practices |
Computed property like method used |
3 |
False |
JS.VUE.NO.USELESS.CONCAT
|
Suspicious Code Practices |
Disallow unnecessary concatenation of literals or template literals |
3 |
False |
JS.VUE.NO.USELESS.MUSTACHES
|
Stylistic Issue |
Disallow unnecessary mustache interpolations |
3 |
False |
JS.VUE.NO.USELESS.TEMPLATE.ATTRIBUTES
|
Unused Code |
Avoid useless attribute on `<template>` tags |
3 |
False |
JS.VUE.NO.USELESS.V.BIND
|
Suspicious Code Practices |
Disallow unnecessary 'v-bind' directives |
3 |
False |
JS.VUE.NO.USE.V.IF.WITH.V.FOR
|
Performance Issues |
Disallow use v-if on the same element as v-for |
3 |
False |
JS.VUE.NO.V.FOR.TEMPLATE.KEY
|
Suspicious Code Practices |
Disallow 'key' attribute on '<template v-for>' |
3 |
True |
JS.VUE.NO.V.FOR.TEMPLATE.KEY.ON.CHILD
|
Suspicious Code Practices |
Disallow key of '<template v-for>' placed on child elements |
3 |
True |
JS.VUE.NO.V.HTML
|
Suspicious Code Practices |
Disallow use of v-html to prevent XSS attack |
3 |
False |
JS.VUE.NO.V.MODEL.ARGUMENT
|
Suspicious Code Practices |
Disallow adding an argument to 'v-model' used in custom component |
3 |
True |
JS.VUE.NO.V.TEXT
|
Unsafe Code Practices |
Emforve reports all uses of `v-text` directive |
3 |
False |
JS.VUE.NO.V.TEXT.V.HTML.ON.COMPONENT
|
Unsafe Code Practices |
Usage of v-text or v-html on component |
3 |
False |
JS.VUE.NO.WATCH.AFTER.AWAIT
|
Concurrency |
Disallow asynchronously registered 'watch' |
3 |
False |
JS.VUE.OBJECT.CURLY.NEWLINE
|
Stylistic Issue |
Enforce consistent line breaks after opening and before closing braces |
3 |
False |
JS.VUE.OBJECT.CURLY.SPACING
|
Stylistic Issue |
Enforce consistent spacing inside braces |
3 |
False |
JS.VUE.OBJECT.PROPERTY.NEWLINE
|
Stylistic Issue |
Enforce placing object properties on separate lines |
3 |
False |
JS.VUE.OBJECT.SHORTHAND
|
Stylistic Issue |
Require or disallow method and property shorthand syntax for object literals |
3 |
False |
JS.VUE.ONE.COMPONENT.PER.FILE
|
Improper Encapsulation |
Enforce that each component should be in its own file |
3 |
False |
JS.VUE.OPERATOR.LINEBREAK
|
Stylistic Issue |
Enforce consistent linebreak style for operators |
3 |
False |
JS.VUE.ORDER.IN.COMPONENTS
|
Stylistic Issue |
Enforce order of properties in components |
3 |
False |
JS.VUE.PADDING.LINE.BETWEEN.BLOCKS
|
Stylistic Issue |
Require or disallow padding lines between blocks |
3 |
False |
JS.VUE.PREFER.IMPORT.FROM.VUE
|
Unsafe Code Practices |
Wrong import from `'@vue/*'`. use imports from `'vue'` instead |
3 |
False |
JS.VUE.PREFER.PROP.TYPE.BOOLEAN.FIRST
|
Stylistic Issue |
Prefer property type boolean first |
3 |
False |
JS.VUE.PREFER.SEPARATE.STATIC.CLASS
|
Stylistic Issue |
Static class names in dynamic class attributes |
3 |
False |
JS.VUE.PREFER.TEMPLATE
|
Stylistic Issue |
Require template literals instead of string concatenation |
3 |
False |
JS.VUE.PREFER.TRUE.ATTRIBUTE.SHORTHAND
|
Stylistic Issue |
v-bind attribute with true value can be written in shorthand form |
3 |
False |
JS.VUE.PROP.NAME.CASING
|
Stylistic Issue |
Enforce specific casing for the Prop name in Vue components |
3 |
False |
JS.VUE.QUOTE.PROPS
|
Stylistic Issue |
Require quotes around object literal property names |
3 |
False |
JS.VUE.REQUIRE.COMPONENT.IS
|
Suspicious Code Practices |
Require 'v-bind:is' of '<component>' elements |
3 |
True |
JS.VUE.REQUIRE.DEFAULT.PROP
|
Improper Encapsulation |
Require default value for props |
3 |
False |
JS.VUE.REQUIRE.DIRECT.EXPORT
|
Stylistic Issue |
Require the component to be directly exported |
3 |
False |
JS.VUE.REQUIRE.EMIT.VALIDATOR
|
Stylistic Issue |
emits statement should contain type definition |
3 |
False |
JS.VUE.REQUIRE.EXPLICIT.EMITS
|
Suspicious Code Practices |
Require 'emits' option with name triggered by '$emit()' |
3 |
False |
JS.VUE.REQUIRE.EXPOSE
|
Unsafe Code Practices |
Declare the exposed properties to the component using `expose` |
3 |
False |
JS.VUE.REQUIRE.NAME.PROPERTY
|
Improper Encapsulation |
Require a name property in Vue components |
3 |
False |
JS.VUE.REQUIRE.PROP.TYPE.CONSTRUCTOR
|
Suspicious Code Practices |
Require prop type to be a constructor |
3 |
False |
JS.VUE.REQUIRE.PROP.TYPES
|
Improper Encapsulation |
Require type definitions in props |
3 |
False |
JS.VUE.REQUIRE.RENDER.RETURN
|
Unsafe Code Practices |
Enforce render function to always return value |
2 |
True |
JS.VUE.REQUIRE.SLOTS.AS.FUNCTIONS
|
Suspicious Code Practices |
Enforce properties of '$slots' to be used as a function |
3 |
True |
JS.VUE.REQUIRE.TOGGLE.INSIDE.TRANSITION
|
Suspicious Code Practices |
Require control the display of the content inside '<transition>' |
3 |
True |
JS.VUE.REQUIRE.VALID.DEFAULT.PROP
|
Improper Encapsulation |
Enforce props default values to be valid |
3 |
False |
JS.VUE.REQUIRE.V.FOR.KEY
|
Suspicious Code Practices |
Require 'v-bind:key' with 'v-for' directives |
3 |
True |
JS.VUE.RETURN.IN.COMPUTED.PROPERTY
|
Improper Encapsulation |
Enforce that a return statement is present in computed property |
3 |
True |
JS.VUE.RETURN.IN.EMITS.VALIDATOR
|
Improper Encapsulation |
Enforce that a return statement is present in emits validator |
3 |
True |
JS.VUE.SCRIPT.INDENT
|
Stylistic Issue |
Enforce consistent indentation in '<script>' |
3 |
False |
JS.VUE.SCRIPT.SETUP.USES.VARS
|
Unused Code |
Script setup uses variables |
3 |
False |
JS.VUE.SINGLELINE.HTML.ELEMENT.CONTENT.NEWLINE
|
Stylistic Issue |
Require a line break before and after the contents of a singleline element |
3 |
False |
JS.VUE.SORT.KEYS
|
Stylistic Issue |
Enforce sort-keys in a manner that is compatible with order-in-components |
3 |
False |
JS.VUE.SPACE.INFIX.OPS
|
Stylistic Issue |
Require spacing around infix operators |
3 |
False |
JS.VUE.SPACE.IN.PARENS
|
Stylistic Issue |
Enforce consistent spacing inside parentheses |
3 |
False |
JS.VUE.SPACE.UNARY.OPS
|
Stylistic Issue |
Enforce consistent spacing before or after unary operators |
3 |
False |
JS.VUE.STATIC.CLASS.NAMES.ORDER
|
Stylistic Issue |
Enforce static class names order |
3 |
False |
JS.VUE.TEMPLATE.CURLY.SPACING
|
Stylistic Issue |
Require or disallow spacing around embedded expressions of template strings |
3 |
False |
JS.VUE.THIS.IN.TEMPLATE
|
Performance Issues |
Disallow usage of 'this' in template |
3 |
False |
JS.VUE.USE.V.ON.EXACT
|
Suspicious Code Practices |
Enforce usage of 'exact' modifier on 'v-on' |
3 |
False |
JS.VUE.VALID.ATTRIBUTE.NAME
|
Unsafe Code Practices |
Invalid HTML attributes |
3 |
False |
JS.VUE.VALID.DEFINE.EMITS
|
Unsafe Code Practices |
defineEmits compiler macro is invalid |
3 |
False |
JS.VUE.VALID.DEFINE.PROPS
|
Banned Code |
Invalid defineProps compiler macros |
3 |
False |
JS.VUE.VALID.MODEL.DEFINITION
|
Unsafe Code Practices |
Invalid keys in model option |
3 |
False |
JS.VUE.VALID.NEXT.TICK
|
Concurrency |
Enforce valid 'nextTick' function calls |
3 |
True |
JS.VUE.VALID.TEMPLATE.ROOT
|
Suspicious Code Practices |
Enforce valid template root |
3 |
True |
JS.VUE.VALID.V.BIND
|
Suspicious Code Practices |
Enforce valid 'v-bind' directives |
3 |
True |
JS.VUE.VALID.V.BIND.SYNC
|
Suspicious Code Practices |
Enforce valid '.sync' modifier on 'v-bind' directives |
3 |
True |
JS.VUE.VALID.V.CLOAK
|
Suspicious Code Practices |
Enforce valid 'v-cloak' directives |
3 |
True |
JS.VUE.VALID.V.ELSE
|
Suspicious Code Practices |
Enforce valid 'v-else' directives |
3 |
True |
JS.VUE.VALID.V.ELSE.IF
|
Suspicious Code Practices |
Enforce valid 'v-else-if' directives |
3 |
True |
JS.VUE.VALID.V.FOR
|
Suspicious Code Practices |
Enforce valid 'v-for' directives |
3 |
True |
JS.VUE.VALID.V.HTML
|
Suspicious Code Practices |
Enforce valid 'v-html' directives |
3 |
True |
JS.VUE.VALID.V.IF
|
Suspicious Code Practices |
Enforce valid 'v-if' directives |
3 |
True |
JS.VUE.VALID.V.IS
|
Suspicious Code Practices |
Enforce valid 'v-is' directives |
3 |
True |
JS.VUE.VALID.V.MEMO
|
Banned Code |
Invalid `v-memo` directive |
3 |
False |
JS.VUE.VALID.V.MODEL
|
Suspicious Code Practices |
Enforce valid 'v-model' directives |
3 |
True |
JS.VUE.VALID.V.ON
|
Suspicious Code Practices |
Enforce valid 'v-on' directives |
3 |
True |
JS.VUE.VALID.V.ONCE
|
Suspicious Code Practices |
Enforce valid 'v-once' directives |
3 |
True |
JS.VUE.VALID.V.PRE
|
Suspicious Code Practices |
Enforce valid 'v-pre' directives |
3 |
True |
JS.VUE.VALID.V.SHOW
|
Suspicious Code Practices |
Enforce valid 'v-show' directives |
3 |
True |
JS.VUE.VALID.V.SLOT
|
Suspicious Code Practices |
Enforce valid 'v-slot' directives |
3 |
True |
JS.VUE.VALID.V.TEXT
|
Suspicious Code Practices |
Enforce valid 'v-text' directives |
3 |
True |
JS.VUE.V.BIND.STYLE
|
Suspicious Code Practices |
Enforce 'v-bind' directive style |
3 |
False |
JS.VUE.V.FOR.DELIMITER.STYLE
|
Suspicious Code Practices |
Enforce 'v-for' directive's delimiter style |
3 |
False |
JS.VUE.V.ON.EVENT.HYPHENATION
|
Stylistic Issue |
Enforce v-on event naming style on custom components in template |
3 |
False |
JS.VUE.V.ON.FUNCTION.CALL
|
Suspicious Code Practices |
Enforce or forbid parentheses after method calls without arguments in 'v-on' directives |
3 |
False |
JS.VUE.V.ON.STYLE
|
Suspicious Code Practices |
Enforce 'v-on' directive style |
3 |
False |
JS.VUE.V.SLOT.STYLE
|
Suspicious Code Practices |
Enforce 'v-slot' directive style |
3 |
False |