pageClass | sidebarDepth | title | description | since |
---|---|---|---|---|
rule-details |
0 |
vue/no-shared-component-data |
enforce component's data property to be a function |
v3.8.0 |
enforce component's data property to be a function
- ⚙️ This rule is included in all of
"plugin:vue/vue3-essential"
,*.configs["flat/essential"]
,"plugin:vue/essential"
,*.configs["flat/vue2-essential"]
,"plugin:vue/vue3-strongly-recommended"
,*.configs["flat/strongly-recommended"]
,"plugin:vue/strongly-recommended"
,*.configs["flat/vue2-strongly-recommended"]
,"plugin:vue/vue3-recommended"
,*.configs["flat/recommended"]
,"plugin:vue/recommended"
and*.configs["flat/vue2-recommended"]
. - 🔧 The
--fix
option on the command line can automatically fix some of the problems reported by this rule.
When using the data property on a component (i.e. anywhere except on new Vue
), the value must be a function that returns an object.
When the value of data
is an object, it’s shared across all instances of a component.
<script>
/* ✓ GOOD */
Vue.component('some-comp', {
data: function () {
return {
foo: 'bar'
}
}
})
export default {
data() {
return {
foo: 'bar'
}
}
}
</script>
<script>
/* ✗ BAD */
Vue.component('some-comp', {
data: {
foo: 'bar'
}
})
export default {
data: {
foo: 'bar'
}
}
</script>
Nothing.
This rule was introduced in eslint-plugin-vue v3.8.0