# vue/order-in-components
enforce order of properties in components
- ⚙️ This rule is included in
"plugin:vue/vue3-recommended"
and"plugin:vue/recommended"
. - 🔧 The
--fix
option on the command line (opens new window) can automatically fix some of the problems reported by this rule.
# 📖 Rule Details
This rule makes sure you keep declared order of properties in components. Recommended order of properties can be found here (opens new window).
<script>
/* ✓ GOOD */
export default {
name: 'app',
props: {
propA: Number
},
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
}
}
</script>
<script>
/* ✗ BAD */
export default {
name: 'app',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
props: {
propA: Number
}
}
</script>
# 🔧 Options
{
"vue/order-in-components": ["error", {
"order": [
"el",
"name",
"key",
"parent",
"functional",
["delimiters", "comments"],
["components", "directives", "filters"],
"extends",
"mixins",
["provide", "inject"],
"ROUTER_GUARDS",
"layout",
"middleware",
"validate",
"scrollToTop",
"transition",
"loading",
"inheritAttrs",
"model",
["props", "propsData"],
"emits",
"setup",
"asyncData",
"data",
"fetch",
"head",
"computed",
"watch",
"watchQuery",
"LIFECYCLE_HOOKS",
"methods",
["template", "render"],
"renderError"
]
}]
}
order
((string | string[])[]
) ... The order of properties. Elements are the property names or one of the following groups:LIFECYCLE_HOOKS
: Vue Lifecycle Events (opens new window), in the order they are calledROUTER_GUARDS
: Vue Router Navigation Guards (opens new window), in the order they are called
If an element is an array of strings, it means any of those can be placed there unordered. Default is above.
# 📚 Further Reading
- Style guide - Component/instance options order (opens new window)
- Style guide (for v2) - Component/instance options order (opens new window)
# 🚀 Version
This rule was introduced in eslint-plugin-vue v3.2.0