JS.VUE.MAX.ATTRIBUTES.PER.LINE
Enforce the maximum number of attributes per line
Limits the maximum number of attributes/properties per line to improve readability.
Rule Details
This rule aims to enforce a number of attributes per line in templates. It checks all the elements in a template and verifies that the number of attributes per line does not exceed the defined maximum. An attribute is considered to be in a new line when there is a line break between two attributes.
There is a configurable number of attributes that are acceptable in one-line case (default 1), as well as how many attributes are acceptable per line in multi-line case (default 1).
{'vue/max-attributes-per-line': ['error']}
Copy
<template>
<!-- GOOD -->
<MyComponent lorem="1"/>
<MyComponent
lorem="1"
ipsum="2"
/>
<MyComponent
lorem="1"
ipsum="2"
dolor="3"
/>
<!-- BAD -->
<MyComponent lorem="1" ipsum="2"/>
<MyComponent
lorem="1" ipsum="2"
/>
<MyComponent
lorem="1" ipsum="2"
dolor="3"
/>
</template>
Options
Copy
{
"vue/max-attributes-per-line": ["error", {
"singleline": {
"max": 1
},
"multiline": {
"max": 1
}
}]
}
singleline.max
(number
) ... The number of maximum attributes per line when the opening tag is in a single line. Default is1
. This can be{ singleline: 1 }
instead of{ singleline: { max: 1 }}
.multiline.max
(number
) ... The max number of attributes per line when the opening tag is in multiple lines. Default is1
. This can be{ multiline: 1 }
instead of{ multiline: { max: 1 }}
.
"singleline": 3
{'vue/max-attributes-per-line': ['error', {singleline: 3}]}
Copy
<template>
<!-- GOOD -->
<MyComponent lorem="1" ipsum="2" dolor="3" />
<!-- BAD -->
<MyComponent lorem="1" ipsum="2" dolor="3" sit="4" />
</template>
"multiline": 2
{'vue/max-attributes-per-line': ['error', {multiline: 2}]}
Copy
<template>
<!-- GOOD -->
<MyComponent
lorem="1" ipsum="2"
dolor="3"
/>
<!-- BAD -->
<MyComponent
lorem="1" ipsum="2" dolor="3"
sit="4"
/>
</template>
Further Reading
- Style guide - Multi attribute elements (https://vuejs.org/style-guide/rules-strongly-recommended.html#multi-attribute-elements)