Skip to content

vue/prefer-true-attribute-shorthand

require shorthand form attribute when v-bind value is true

  • 💡 Some problems reported by this rule are manually fixable by editor suggestions.

📖 Rule Details

v-bind attribute with true value usually can be written in shorthand form. This can reduce verbosity.

Now loading...

Warning

The shorthand form is not always equivalent! If a prop accepts multiple types, but Boolean is not the first one, a shorthand prop won't pass true.

vue
<script>
export default {
  name: 'MyComponent',
  props: {
    bool: Boolean,
    boolOrString: [Boolean, String],
    stringOrBool: [String, Boolean],
  }
}
</script>

Shorthand form:

vue
<MyComponent bool bool-or-string string-or-bool />
txt
bool: true (boolean)
boolOrString: true (boolean)
stringOrBool: "" (string)

Longhand form:

vue
<MyComponent :bool="true" :bool-or-string="true" :string-or-bool="true" />
txt
bool: true (boolean)
boolOrString: true (boolean)
stringOrBool: true (boolean)

Those two calls will introduce different render result. See this demo.

🔧 Options

Default options is "always".

json
{
  "vue/prefer-true-attribute-shorthand": ["error",
    "always" | "never",
    {
      except: []
    }
  ]
}
  • "always" (default) ... requires shorthand form.
  • "never" ... requires long form.
  • except (string[]) ... specifies a list of attribute names that should be treated differently.

"never"

Now loading...

"never", { 'except': ['value', '/^foo-/'] }

Now loading...

🚀 Version

This rule was introduced in eslint-plugin-vue v8.5.0

🔍 Implementation

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy